%
%    dnmacs.tex v2.14
%
%    Plain TeX macros for Devanagari for TeX package
%    Copyright (C) 1991-2003 University of Groningen, The Netherlands
%
%    Author     : Frans J. Velthuis <velthuis@rc.rug.nl>
%    Maintainer : John Smith <jds10@cam.ac.uk>
%                 Anshuman Pandey <apandey@u.washington.edu>
%                 Kevin Carmody <i@kevincarmody.com>
%    Date       : 14 March 2005
%
%    This program is free software; you can redistribute it and/or modify
%    it under the terms of the GNU General Public License as published by
%    the Free Software Foundation; either version 1, or (at your option)
%    any later version.
%
%    This program is distributed in the hope that it will be useful,
%    but WITHOUT ANY WARRANTY; without even the implied warranty of
%    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%    GNU General Public License for more details.
%
%    You should have received a copy of the GNU General Public License
%    along with this program; if not, write to the Free Software
%    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%
%
% Master Devanagari mode macro
%
% Define the basic \dn macro for entering Devanagari mode.
%
\def\dn{\dnmodetrue\ifdnpenfont\ifdnbombayfont\pdnpbom\else\ifdncalcuttafont%
\pdnpcal\else\pdnp\fi\fi\else\ifdnbombayfont\ifdnboldfont\ifdnitalfont%
\pdnbombi\else\pdnbomb\fi\else\ifdnitalfont\pdnbomi\else\pdnbom\fi\fi%
\else\ifdncalcuttafont\ifdnboldfont\ifdnitalfont\pdncalbi\else\pdncalb\fi%
\else\ifdnitalfont\pdncali\else\pdncal\fi\fi\else\ifdnboldfont\ifdnitalfont%
\pdnbi\else\pdnb\fi\else\ifdnitalfont\pdni\else\pdn\fi\fi\fi\fi\fi%
\baselineskip=\dnblskip
\chnum=0
\loop\catcode\chnum=11
\ifnum\chnum<12\advance\chnum by1
\repeat
\chnum=14
\loop\catcode\chnum=11
\ifnum\chnum<31\advance\chnum by1
\repeat
\catcode127=11
\tolerance=10000
\pretolerance=10000
\language=\nohyphenation}
%
% Alternate, bold, italic, and size modes
%
% Use these macros in DN files to switch modes, either inside or outside
% Devanagari mode. Alternate, bold, italic, and size macros may be mixed
% and still produce proper results. Examples:
%
% \dnbombay {\dn atha yogaanu"saasanam}
% {\dn\dnbomay atha yogaanu"saasanam}
% {\dn\dnbig\dnbf atha yogaanu"saasanam}
% {\dn {\dnbombay\dnbig a}tha yogaanu"saasanam}
%
% Definition of \dnoriginal
%
\def\dnoriginal{\dnbombayfontfalse\dncalcuttafontfalse\ifdnmode%
\ifdnboldfont\ifdnitalfont\pdnbi\else\pdnb\fi\else\ifdnitalfont%
\pdni\else\pdn\fi\fi\fi}
%
% Definition of \dnbombay
%
\def\dnbombay{\dnbombayfonttrue\dncalcuttafontfalse\ifdnmode%
\ifdnboldfont\ifdnitalfont\pdnbombi\else\pdnbomb\fi\else\ifdnitalfont%
\pdnbomi\else\pdnbom\fi\fi\fi}
%
% Definition of \dncalcutta
%
\def\dncalcutta{\dncalcuttafonttrue\dnbombayfontfalse\ifdnmode%
\ifdnboldfont\ifdnitalfont\pdncalbi\else\pdncalb\fi\else\ifdnitalfont%
\pdncali\else\pdncal\fi\fi\fi}
%
% Definition of \dnbf for bold
%
\def\dnbf{\dnboldfonttrue\ifdnmode\ifdnbombayfont\ifdnitalfont%
\pdnbombi\else\pdnbomb\fi\else\ifdncalcuttafont\ifdnitalfont%
\pdncalbi\else\pdncalb\fi\else\ifdnitalfont\pdnbi\else\pdnb\fi\fi\fi\fi}
%
% Definition of \dnit for italics
%
\def\dnit{\dnitalfonttrue\ifdnmode\ifdnbombayfont\ifdnboldfont%
\pdnbombi\else\pdnbomi\fi\else\ifdncalcuttafont\ifdnboldfont%
\pdncalbi\else\pdncali\fi\else\ifdnboldfont\pdnbi\else\pdni\fi\fi\fi\fi}
%
% Definition of \dnpen
%
\def\dnpen{\dnpenfonttrue\ifdnmode\ifdnbombayfont\pdnpbom\else%
\ifdncalcuttafont\pdnpcal\else\pdnp\fi\fi\fi}
%
% Definition of various sizes
%
% \dnsmall: 8pt font, 12pt baselineskip
\def\dnsmall{\let\pdn=\smalldn\let\pdnb=\smalldnb%
\let\pdni=\smalldni\let\pdnbi=\smalldnbi%
\let\pdnbom=\smalldnbom\let\pdnbomb=\smalldnbomb%
\let\pdnbomi=\smalldnbomi\let\pdnbombi=\smalldnbombi%
\let\pdncal=\smalldncal\let\pdncalb=\smalldncalb%
\let\pdncali=\smalldncali\let\pdncalbi=\smalldncalbi%
\let\pdnp=\smalldnp\let\pdnpbom=\smalldnpbom\let\pdnpcal=\smalldnpcal%
\let\rsize=\smallcr\dnblskip=12pt\ifdnsamavedamode\dnsmalltf\fi%
\ifdnmode\dn\fi}
%
% \dnnine: 9pt font, 13.5pt baselineskip
\def\dnnine{\let\pdn=\ninedn\let\pdnb=\ninednb%
\let\pdni=\ninedni\let\pdnbi=\ninednbi%
\let\pdnbom=\ninednbom\let\pdnbomb=\ninednbomb%
\let\pdnbomi=\ninednbomi\let\pdnbombi=\ninednbombi%
\let\pdncal=\ninedncal\let\pdncalb=\ninedncalb%
\let\pdncali=\ninedncali\let\pdncalbi=\ninedncalbi%
\let\pdnp=\ninednp\let\pdnpbom=\ninednpbom\let\pdnpcal=\ninednpcal%
\let\rsize=\ninecr\dnblskip=13.5pt\ifdnsamavedamode\dnninetf\fi%
\ifdnmode\dn\fi}
%
% \dnnormal: 10pt font, 15pt baselineskip
\def\dnnormal{\let\pdn=\dvng\let\pdnb=\dvngb%
\let\pdni=\dvngi\let\pdnbi=\dvngbi%
\let\pdnbom=\dvngbom\let\pdnbomb=\dvngbomb%
\let\pdnbomi=\dvngbomi\let\pdnbombi=\dvngbombi%
\let\pdncal=\dvngcal\let\pdncalb=\dvngcalb%
\let\pdncali=\dvngcali\let\pdncalbi=\dvngcalbi%
\let\pdnp=\dvngp\let\pdnpbom=\dvngpbom\let\pdnpcal=\dvngpcal%
\let\rsize=\rm\dnblskip=15pt\ifdnsamavedamode\dnnormaltf\fi%
\ifdnmode\dn\fi}
%
% \dnhalf: 11pt font, 16.5pt baselineskip
\def\dnhalf{\let\pdn=\halfdn\let\pdnb=\halfdnb%
\let\pdni=\halfdni\let\pdnbi=\halfdnbi%
\let\pdnbom=\halfdnbom\let\pdnbomb=\halfdnbomb%
\let\pdnbomi=\halfdnbomi\let\pdnbombi=\halfdnbombi%
\let\pdncal=\halfdncal\let\pdncalb=\halfdncalb%
\let\pdncali=\halfdncali\let\pdncalbi=\halfdncalbi%
\let\pdnp=\halfdnp\let\pdnpbom=\halfdnpbom\let\pdnpcal=\halfdnpcal%
\let\rsize=\halfcr\dnblskip=16.5pt\ifdnsamavedamode\dnhalftf\fi%
\ifdnmode\dn\fi}
%
% \dnbig: 12pt font, 18pt baselineskip
\def\dnbig{\let\pdn=\bigdn\let\pdnb=\bigdnb%
\let\pdni=\bigdni\let\pdnbi=\bigdnbi%
\let\pdnbom=\bigdnbom\let\pdnbomb=\bigdnbomb%
\let\pdnbomi=\bigdnbomi\let\pdnbombi=\bigdnbombi%
\let\pdncal=\bigdncal\let\pdncalb=\bigdncalb%
\let\pdncali=\bigdncali\let\pdncalbi=\bigdncalbi%
\let\pdnp=\bigdnp\let\pdnpbom=\bigdnpbom\let\pdnpcal=\bigdnpcal%
\let\rsize=\bigcr\dnblskip=18pt\ifdnsamavedamode\dnbigtf\fi%
\ifdnmode\dn\fi}
%
% \dnlarge: 14.4pt font, 22pt baselineskip
\def\dnlarge{\let\pdn=\largedn\let\pdnb=\largednb%
\let\pdni=\largedni\let\pdnbi=\largednbi%
\let\pdnbom=\largednbom\let\pdnbomb=\largednbomb%
\let\pdnbomi=\largednbomi\let\pdnbombi=\largednbombi%
\let\pdncal=\largedncal\let\pdncalb=\largedncalb%
\let\pdncali=\largedncali\let\pdncalbi=\largedncalbi%
\let\pdnp=\largednp\let\pdnpbom=\largednpbom\let\pdnpcal=\largednpcal%
\let\rsize=\largecr\dnblskip=22pt\ifdnsamavedamode\dnlargetf\fi%
\ifdnmode\dn\fi}
%
% \dnhuge: 17.3pt font, 26pt baselineskip
\def\dnhuge{\let\pdn=\hugedn\let\pdnb=\hugednb%
\let\pdni=\hugedni\let\pdnbi=\hugednbi%
\let\pdnbom=\hugednbom\let\pdnbomb=\hugednbomb%
\let\pdnbomi=\hugednbomi\let\pdnbombi=\hugednbombi%
\let\pdncal=\hugedncal\let\pdncalb=\hugedncalb%
\let\pdncali=\hugedncali\let\pdncalbi=\hugedncalbi%
\let\pdnp=\hugednp\let\pdnpbom=\hugednpbom\let\pdnpcal=\hugednpcal%
\let\rsize=\hugecr\dnblskip=26pt\ifdnsamavedamode\dnhugetf\fi%
\ifdnmode\dn\fi}
%
% Numeral modes
%
% Use these macros in DN files to control the numeral display style.
%
\def\dnnum{\let\nstyle=d}
\def\cmnum{\let\nstyle=r}
\def\rn#1{\if\nstyle r{\rsize #1}\else#1\fi}
%
% Vedic intonation mark macros
%
% Use these macros in DN files to enable and use Vedic intonation macros.
%
\def\dnveda{\dnvedamodetrue%
\def\_{\anudatta}%
\def\|{\svarita}%
\def\~{\padasep}}
%
\def\dnfixedanudatta{\dnanudattafixedtrue}%
\def\dnvariableanudatta{\dnanudattafixedfalse}%
%
\def\dnsamaveda{\dnsamavedamodetrue%
\def\^{\samatone}%
\def\@{\vedicanusvara}%
\ifdnsamavedafont\else%
\font\sixdn=dvng10 at 6pt%
\font\sixdnbom=dvnb10 at 6pt%
\font\sixdncal=dvnc10 at 6pt%
\font\sixdnp=dvpn10 at 6pt%
\font\sixdnpbom=dvpb10 at 6pt%
\font\sixdnpcal=dvpc10 at 6pt%
\font\sevendn=dvng10 at 7pt%
\font\sevendnbom=dvnb10 at 7pt%
\font\sevendncal=dvnc10 at 7pt%
\font\sevendnp=dvpn10 at 7pt%
\font\sevendnpbom=dvpb10 at 7pt%
\font\sevendnpcal=dvpc10 at 7pt%
\dnsamavedafonttrue%
\fi%
\ifx\pdn\smalldn\dnsmalltf\else%
\ifx\pdn\ninedn\dnninetf\else%
\ifx\pdn\halfdn\dnhalftf\else%
\ifx\pdn\bigdn\dnbigtf\else%
\ifx\pdn\largedn\dnlargetf\else%
\ifx\pdn\hugedn\dnhugetf\else%
\dnnormaltf\fi\fi\fi\fi\fi\fi}
%
\def\anudatta#1{\leavevmode\setbox0=\hbox{#1}%
\anudep=\dp0\anuwid=\wd0\advance\anudep by 0.7ex%
\ifdnanudattafixed{#1}\llap{\lower\anudep%
\hbox to\anuwid{\hss\vrule width0.5em height0.07em\hss}}%
\else\advance\anuwid by -0.1em{#1}\llap{\lower\anudep%
\hbox{\vrule width\anuwid height0.07em}%
\hbox{\phantom{\vrule width0.1em height0.08em}}}\fi}
%
\def\svarita#1{\leavevmode\hbox{#1}%
\llap{\raise5.7ex\hbox{\vrule height2.5ex width0.08em}%
\hbox{\phantom{\vrule height2.5ex width0.15em}}}}
%
\def\padasep{\leavevmode\hbox{%
\kern-0.15em\raise2.42ex\hbox{\char255}%
\kern-0.15em\raise2.42ex\hbox{\char255}%
\kern-0.15em\raise2.42ex\hbox{\char255}}}
%
\def\samatone#1#2{\leavevmode\hbox{#1}%
\llap{\raise9.5ex\hbox{\dnnum\dntf #2}%
\hbox{\phantom{\vrule height2.5ex width0.15em}}}}
%
\def\vedicanusvara{\leavevmode{\kern1.0ex\lower1.5ex\hbox{\char32}}%
\kern-2.0ex\raise3.7ex\llap{\char94}\kern3.8ex}
%
% Macros for selection of Sama Veda tone font \dntf
%
\def\dnsmalltf{\ifdnpenfont\ifdnbombayfont\let\dntf=\sixdnpbom\else%
\ifdncalcuttafont\let\dntf=\sixdnpcal\else\let\dntf=\sixdnp\fi\fi%
\else\ifdnbombayfont\let\dntf=\sixdnbom\else%
\ifdncalcuttafont\let\dntf=\sixdncal\else\let\dntf=\sixdn\fi\fi\fi}
%
\def\dnninetf{\ifdnpenfont\ifdnbombayfont\let\dntf=\sixdnpbom\else%
\ifdncalcuttafont\let\dntf=\sixdnpcal\else\let\dntf=\sixdnp\fi\fi%
\else\ifdnbombayfont\let\dntf=\sixdnbom\else%
\ifdncalcuttafont\let\dntf=\sixdncal\else\let\dntf=\sixdn\fi\fi\fi}
%
\def\dnnormaltf{\ifdnpenfont\ifdnbombayfont\let\dntf=\sevendnpbom\else%
\ifdncalcuttafont\let\dntf=\sevendnpcal\else\let\dntf=\sevendnp\fi\fi%
\else\ifdnbombayfont\let\dntf=\sevendnbom\else%
\ifdncalcuttafont\let\dntf=\sevendncal\else\let\dntf=\sevendn\fi\fi\fi}
%
\def\dnhalftf{\ifdnpenfont\ifdnbombayfont\let\dntf=\smalldnpbom\else%
\ifdncalcuttafont\let\dntf=\smalldnpcal\else\let\dntf=\smalldnp\fi\fi%
\else\ifdnbombayfont\let\dntf=\smalldnbom\else%
\ifdncalcuttafont\let\dntf=\smalldncal\else\let\dntf=\smalldn\fi\fi\fi}
%
\def\dnbigtf{\ifdnpenfont\ifdnbombayfont\let\dntf=\smalldnpbom\else%
\ifdncalcuttafont\let\dntf=\smalldnpcal\else\let\dntf=\smalldnp\fi\fi%
\else\ifdnbombayfont\let\dntf=\smalldnbom\else%
\ifdncalcuttafont\let\dntf=\smalldncal\else\let\dntf=\smalldn\fi\fi\fi}
%
\def\dnlargetf{\ifdnpenfont\ifdnbombayfont\let\dntf=\dvngpbom\else%
\ifdncalcuttafont\let\dntf=\dvngpcal\else\let\dntf=\dvngp\fi\fi%
\else\ifdnbombayfont\let\dntf=\dvngbom\else%
\ifdncalcuttafont\let\dntf=\dvngcal\else\let\dntf=\dvng\fi\fi\fi}
%
\def\dnhugetf{\ifdnpenfont\ifdnbombayfont\let\dntf=\bigdnpbom\else%
\ifdncalcuttafont\let\dntf=\bigdnpcal\else\let\dntf=\bigdnp\fi\fi%
\else\ifdnbombayfont\let\dntf=\bigdnbom\else%
\ifdncalcuttafont\let\dntf=\bigdncal\else\let\dntf=\bigdn\fi\fi\fi}
%
% Devanagari Fonts
%
\font\smalldn=dvng8
\font\smalldnb=dvngb10 at 8pt
\font\smalldni=dvngi10 at 8pt
\font\smalldnbi=dvngbi10 at 8pt
\font\smalldnbom=dvnb8
\font\smalldnbomb=dvnbb10 at 8pt
\font\smalldnbomi=dvnbi10 at 8pt
\font\smalldnbombi=dvnbbi10 at 8pt
\font\smalldncal=dvnc8
\font\smalldncalb=dvncb10 at 8pt
\font\smalldncali=dvnci10 at 8pt
\font\smalldncalbi=dvncbi10 at 8pt
\font\smalldnp=dvpn8
\font\smalldnpbom=dvpb8
\font\smalldnpcal=dvpc8
\font\ninedn=dvng9
\font\ninednb=dvngb10 at 9pt
\font\ninedni=dvngi10 at 9pt
\font\ninednbi=dvngbi10 at 9pt
\font\ninednbom=dvnb9
\font\ninednbomb=dvnbb10 at 9pt
\font\ninednbomi=dvnbi10 at 9pt
\font\ninednbombi=dvnbbi10 at 9pt
\font\ninedncal=dvnc9
\font\ninedncalb=dvncb10 at 9pt
\font\ninedncali=dvnci10 at 9pt
\font\ninedncalbi=dvncbi10 at 9pt
\font\ninednp=dvpn9
\font\ninednpbom=dvpb9
\font\ninednpcal=dvpc9
\font\dvng=dvng10
\font\dvngb=dvngb10
\font\dvngi=dvngi10
\font\dvngbi=dvngbi10
\font\dvngbom=dvnb10
\font\dvngbomb=dvnbb10
\font\dvngbomi=dvnbi10
\font\dvngbombi=dvnbbi10
\font\dvngcal=dvnc10
\font\dvngcalb=dvncb10
\font\dvngcali=dvnci10
\font\dvngcalbi=dvncbi10
\font\dvngp=dvpn10
\font\dvngpbom=dvpb10
\font\dvngpcal=dvpc10
\font\halfdn=dvng10 scaled\magstephalf
\font\halfdnb=dvngb10 scaled\magstephalf
\font\halfdni=dvngi10 scaled\magstephalf
\font\halfdnbi=dvngbi10 scaled\magstephalf
\font\halfdnbom=dvnb10 scaled\magstephalf
\font\halfdnbomb=dvnbb10 scaled\magstephalf
\font\halfdnbomi=dvnbi10 scaled\magstephalf
\font\halfdnbombi=dvnbbi10 scaled\magstephalf
\font\halfdncal=dvnc10 scaled\magstephalf
\font\halfdncalb=dvncb10 scaled\magstephalf
\font\halfdncali=dvnci10 scaled\magstephalf
\font\halfdncalbi=dvncbi10 scaled\magstephalf
\font\halfdnp=dvpn10 scaled\magstephalf
\font\halfdnpbom=dvpb10 scaled\magstephalf
\font\halfdnpcal=dvpc10 scaled\magstephalf
\font\bigdn=dvng10 scaled\magstep1
\font\bigdnb=dvngb10 scaled\magstep1
\font\bigdni=dvngi10 scaled\magstep1
\font\bigdnbi=dvngbi10 scaled\magstep1
\font\bigdnbom=dvnb10 scaled\magstep1
\font\bigdnbomb=dvnbb10 scaled\magstep1
\font\bigdnbomi=dvnbi10 scaled\magstep1
\font\bigdnbombi=dvnbbi10 scaled\magstep1
\font\bigdncal=dvnc10 scaled\magstep1
\font\bigdncalb=dvncb10 scaled\magstep1
\font\bigdncali=dvnci10 scaled\magstep1
\font\bigdncalbi=dvncbi10 scaled\magstep1
\font\bigdnp=dvpn10 scaled\magstep1
\font\bigdnpbom=dvpb10 scaled\magstep1
\font\bigdnpcal=dvpc10 scaled\magstep1
\font\largedn=dvng10 scaled\magstep2
\font\largednb=dvngb10 scaled\magstep2
\font\largedni=dvngi10 scaled\magstep2
\font\largednbi=dvngbi10 scaled\magstep2
\font\largednbom=dvnb10 scaled\magstep2
\font\largednbomb=dvnbb10 scaled\magstep2
\font\largednbomi=dvnbi10 scaled\magstep2
\font\largednbombi=dvnbbi10 scaled\magstep2
\font\largedncal=dvnc10 scaled\magstep2
\font\largedncalb=dvncb10 scaled\magstep2
\font\largedncali=dvnci10 scaled\magstep2
\font\largedncalbi=dvncbi10 scaled\magstep2
\font\largednp=dvpn10 scaled\magstep2
\font\largednpbom=dvpb10 scaled\magstep2
\font\largednpcal=dvpc10 scaled\magstep2
\font\hugedn=dvng10 scaled\magstep3
\font\hugednb=dvngb10 scaled\magstep3
\font\hugedni=dvngi10 scaled\magstep3
\font\hugednbi=dvngbi10 scaled\magstep3
\font\hugednbom=dvnb10 scaled\magstep3
\font\hugednbomb=dvnbb10 scaled\magstep3
\font\hugednbomi=dvnbi10 scaled\magstep3
\font\hugednbombi=dvnbbi10 scaled\magstep3
\font\hugedncal=dvnc10 scaled\magstep3
\font\hugedncalb=dvncb10 scaled\magstep3
\font\hugedncali=dvnci10 scaled\magstep3
\font\hugedncalbi=dvncbi10 scaled\magstep3
\font\hugednp=dvpn10 scaled\magstep3
\font\hugednpbom=dvpb10 scaled\magstep3
\font\hugednpcal=dvpc10 scaled\magstep3
%
% Hyphenation
%
\def\sethyph#1{
\hyphenchar\smalldn=#1\hyphenchar\smalldnb=#1
\hyphenchar\smalldni=#1\hyphenchar\smalldnbi=#1
\hyphenchar\smalldnbom=#1\hyphenchar\smalldnbomb=#1
\hyphenchar\smalldnbomi=#1\hyphenchar\smalldnbombi=#1
\hyphenchar\smalldncal=#1\hyphenchar\smalldncalb=#1
\hyphenchar\smalldncali=#1\hyphenchar\smalldncalbi=#1
\hyphenchar\smalldnp=#1\hyphenchar\smalldnpbom=#1\hyphenchar\smalldnpcal=#1
\hyphenchar\ninedn=#1\hyphenchar\ninednb=#1
\hyphenchar\ninedni=#1\hyphenchar\ninednbi=#1
\hyphenchar\ninednbom=#1\hyphenchar\ninednbomb=#1
\hyphenchar\ninednbomi=#1\hyphenchar\ninednbombi=#1
\hyphenchar\ninedncal=#1\hyphenchar\ninedncalb=#1
\hyphenchar\ninedncali=#1\hyphenchar\ninedncalbi=#1
\hyphenchar\ninednp=#1\hyphenchar\ninednpbom=#1\hyphenchar\ninednpcal=#1
\hyphenchar\dvng=#1\hyphenchar\dvngb=#1
\hyphenchar\dvngi=#1\hyphenchar\dvngbi=#1
\hyphenchar\dvngbom=#1\hyphenchar\dvngbomb=#1
\hyphenchar\dvngbomi=#1\hyphenchar\dvngbombi=#1
\hyphenchar\dvngcal=#1\hyphenchar\dvngcalb=#1
\hyphenchar\dvngcali=#1\hyphenchar\dvngcalbi=#1
\hyphenchar\dvngp=#1\hyphenchar\dvngpbom=#1\hyphenchar\dvngpcal=#1
\hyphenchar\halfdn=#1\hyphenchar\halfdnb=#1
\hyphenchar\halfdni=#1\hyphenchar\halfdnbi=#1
\hyphenchar\halfdnbom=#1\hyphenchar\halfdnbomb=#1
\hyphenchar\halfdnbomi=#1\hyphenchar\halfdnbombi=#1
\hyphenchar\halfdncal=#1\hyphenchar\halfdncalb=#1
\hyphenchar\halfdncali=#1\hyphenchar\halfdncalbi=#1
\hyphenchar\halfdnp=#1\hyphenchar\halfdnpbom=#1\hyphenchar\halfdnpcal=#1
\hyphenchar\bigdn=#1\hyphenchar\bigdnb=#1
\hyphenchar\bigdni=#1\hyphenchar\bigdnbi=#1
\hyphenchar\bigdnbom=#1\hyphenchar\bigdnbomb=#1
\hyphenchar\bigdnbomi=#1\hyphenchar\bigdnbombi=#1
\hyphenchar\bigdncal=#1\hyphenchar\bigdncalb=#1
\hyphenchar\bigdncali=#1\hyphenchar\bigdncalbi=#1
\hyphenchar\bigdnp=#1\hyphenchar\bigdnpbom=#1\hyphenchar\bigdnpcal=#1
\hyphenchar\largedn=#1\hyphenchar\largednb=#1
\hyphenchar\largedni=#1\hyphenchar\largednbi=#1
\hyphenchar\largednbom=#1\hyphenchar\largednbomb=#1
\hyphenchar\largednbomi=#1\hyphenchar\largednbombi=#1
\hyphenchar\largedncal=#1\hyphenchar\largedncalb=#1
\hyphenchar\largedncali=#1\hyphenchar\largedncalbi=#1
\hyphenchar\largednp=#1\hyphenchar\largednpbom=#1\hyphenchar\largednpcal=#1
\hyphenchar\hugedn=#1\hyphenchar\hugednb=#1
\hyphenchar\hugedni=#1\hyphenchar\hugednbi=#1
\hyphenchar\hugednbom=#1\hyphenchar\hugednbomb=#1
\hyphenchar\hugednbomi=#1\hyphenchar\hugednbombi=#1
\hyphenchar\hugedncal=#1\hyphenchar\hugedncalb=#1
\hyphenchar\hugedncali=#1\hyphenchar\hugedncalbi=#1
\hyphenchar\hugednp=#1\hyphenchar\hugednpbom=#1\hyphenchar\hugednpcal=#1}
%
% Roman Fonts
%
\font\smallcr=cmr8
\font\ninecr=cmr9
\font\halfcr=cmr10 scaled\magstephalf
\font\bigcr=cmr10 scaled\magstep1
\font\largecr=cmr10 scaled\magstep2
\font\hugecr=cmr10 scaled\magstep3
%
% Registers
%
\newcount\chnum
\newdimen\itdim
\newdimen\dnblskip
\newdimen\subdep
\newdimen\anudep
\newdimen\anuwid
\newif\ifdnmode
\newif\ifdnbombayfont
\newif\ifdncalcuttafont
\newif\ifdnboldfont
\newif\ifdnitalfont
\newif\ifdnpenfont
\newif\ifdnvedamode
\newif\ifdnsamavedamode
\newif\ifdnsamavedafont
\newif\ifdnanudattafixed
%
% Letter macros
%
% The preprocessor inserts uses of these macros into the preprocessor output.
% TeX then uses them to typeset individual characters.  Under normal
% conditions, you should not need to use these macros in DN files.
%
\def\subscr#1{\/\itdim=\lastkern%
\unkern\kern-\itdim\lower\subdep\hbox to\itdim{#1\hfil}}
\def\0{\llap{\char13}}
\def\1{\llap{\char32}}
\def\2{\llap{\char92}}
\def\3#1w{{\char"#1}}
\def\4{\llap{\char123}}
\def\5{\llap{\char125}}
\def\6#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char126}}}
\def\7#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char0}}}
\def\8#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char1}}}
\def\9#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char2}}}
\def\qb#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char253}}}
\def\qq#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char94}}}
\def\qx#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char14}}}
\def\qy#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char31}}}
\def\qz#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char124}}}
\def\qa#1#2{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1%
\subscr{\char253\kern0.5ex\lower2.5ex\hbox{\char#2}\kern-1.5ex}}}
\def\qc#1#2{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1%
\subscr{\char126\kern0.5ex\lower2.5ex\hbox{\char#2}\kern-1.5ex}}}
\def\qva{\kern0.5ex\2\kern-0.5ex}
\def\qvb{\kern1ex\0\kern-1ex}
\def\qvc{\kern1ex\rdt\kern-1ex}
\def\?{\llap{\char3}}
\def\<{\llap{\char4}}
\def\rs{\rsize\thinspace}
\let\re=\thinspace
\def\rdt{\llap{\char19}}
%
% Initialization
%
\newlanguage\nohyphenation
\sethyph{255}
\let\pdn=\dvng
\let\pdnb=\dvngb
\let\pdni=\dvngi
\let\pdnbi=\dvngbi
\let\pdnbom=\dvngbom
\let\pdnbomb=\dvngbomb
\let\pdnbomi=\dvngbomi
\let\pdnbombi=\dvngbombi
\let\pdncal=\dvngcal
\let\pdncalb=\dvngcalb
\let\pdncali=\dvngcali
\let\pdncalbi=\dvngcalbi
\let\pdnp=\dvngp
\let\pdnpbom=\dvngpbom
\let\pdnpcal=\dvngpcal
\dnblskip=15pt
\let\rsize=\rm
\cmnum