diff options
Diffstat (limited to 'Master/texmf-dist/doc/fonts/malayalam/article/mmmacs.tex')
-rw-r--r-- | Master/texmf-dist/doc/fonts/malayalam/article/mmmacs.tex | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/fonts/malayalam/article/mmmacs.tex b/Master/texmf-dist/doc/fonts/malayalam/article/mmmacs.tex new file mode 100644 index 00000000000..bbf5464dd72 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/malayalam/article/mmmacs.tex @@ -0,0 +1,139 @@ +% mmmacs -- macros for Malayalam TeX +% (c) 1993 Jeroen Hellingman +% last edit: 02-APR-1993 +% +% History: +% 02-APR-1993 made virama stick out halfway. (JH) +% 12-JAN-1993 version 1.0 (Jeroen Hellingman) + +\ifx\mmmacsloaded\relax\endinput\else\let\mmmacsloaded=\relax\fi + +%%%%%% fonts + +\input mmfont.tex % load fonts + +%%%%%% font selection + +\newdimen\mmcbls % Malayalam Current BaseLineSkip +\def\mmslant{0} % slant factor of current Malayalam font +\newif\ifmmmode\mmmodefalse + +% trick from the TeXbook, p. 375 +{\catcode`p=12 \catcode`t=12 \gdef\xxx#1pt{#1}} +\let\getfactor=\xxx +\def\getslant#1{\expandafter\getfactor\the\fontdimen1#1} + +\def\Z{\mmcursf} +\def\RMF{\mmcurrm} + +\def\mm{\setmm\noexpand\mmmodetrue} +\def\setmm{\pretolerance=9999\tolerance=5000\hyphenpenalty=10000% + \language=13\mmcurf\gdef\mmslant{\getslant\mmcurf}% + \baselineskip=\mmcbls\emergencystretch=30pt} + +\mmr % select Malayalam Regular 10pt + +%%%%%% glyph composing macros + +% put #1 centered on top of #2, taking into account \mmslant +\def\puton#1#2{\hskip0pt{\setbox0=\hbox{#2}\setbox1=\hbox{#1}% + \dimen0=.5\wd0\advance\dimen0by.5\wd1% + \dimen1=\ht0\advance\dimen1by\dp1% + \dimen3=.5\wd0\advance\dimen3by-.5\wd1% + \dimen5=\mmslant\dimen1 % calculate correction needed for slanted fonts + \advance\dimen0by-\dimen5 + \advance\dimen3by-\dimen5 + \box0\kern-\dimen0\raise\dimen1\box1\kern\dimen3}} + +% put #1 to the right on top of #2, taking into account \mmslant +\def\putrighton#1#2{\hskip0pt{\setbox0=\hbox{#2}\setbox1=\hbox{#1}% + \dimen0=\wd1% + \dimen1=\ht0\advance\dimen1by\dp1% + \dimen3=0pt% + \dimen5=\mmslant\dimen1 % calculate correction needed for slanted fonts + \advance\dimen0by-\dimen5 + \advance\dimen3by-\dimen5 + \box0\kern-\dimen0\raise\dimen1\box1\kern\dimen3}} + +% put #1 to the far right on top of #2, taking into account \mmslant +% #1 will stick partly out #2, for placing virama +\def\putfarrighton#1#2{\hskip0pt{\setbox0=\hbox{#2}\setbox1=\hbox{#1}% + \dimen0=0.667\wd1% + \dimen1=\ht0\advance\dimen1by\dp1% + \dimen3=-0.333\wd1% + \dimen5=\mmslant\dimen1 % calculate correction needed for slanted fonts + \advance\dimen0by-\dimen5 + \advance\dimen3by-\dimen5 + \box0\kern-\dimen0\raise\dimen1\box1\kern\dimen3}} + +\def\mmV#1{\putfarrighton{\N{.8}{\<77>}}{#1}} % place virama + +% put #1 centered underneath #2, taking into account \mmslant +\def\putbelow#1#2{\hskip0pt{\setbox1=\hbox{#1}\setbox0=\hbox{#2}% + \dimen0=.5\wd0\advance\dimen0by.5\wd1% + \dimen1=\dp0\advance\dimen1by\ht1% + \dimen3=.5\wd0\advance\dimen3by-.5\wd1% + % test: if #1 wider than #2, kern 0.5(wd1-wd0) before, and idem after extra. + \ifdim\wd1>\wd0\dimen7=\wd1\advance\dimen7by-\wd0% + \hbox{}\kern0.5\dimen7% + \advance\dimen3by0.5\dimen7% + \fi + \dimen5=-\mmslant\dimen1 % calculate correction needed for slanted fonts + \advance\dimen0by-\dimen5 + \advance\dimen3by-\dimen5 + \box0\kern-\dimen0\lower\dimen1\box1\kern\dimen3}} +\def\B#1#2{\putbelow{#2}{#1}} + +% put #1 right aligned underneath #2, taking into account \mmslant +\def\putrightbelow#1#2{\hskip0pt{\setbox1=\hbox{#1}\setbox0=\hbox{#2}% + \dimen1=\dp0\advance\dimen1by\ht1% + % test: if #1 wider than #2, kern wd1-wd0 extra. + \ifdim\wd1>\wd0\dimen0=\wd1\advance\dimen0by-\wd0\kern\dimen0\fi + \dimen5=-\mmslant\dimen1 % calculate correction needed for slanted fonts + \box0\kern-\wd1% + \ifdim\dimen5=0pt\else\kern\dimen5\fi % avoid unneccessary kerns + \lower\dimen1\box1 + \ifdim\dimen5=0pt\else\kern-\dimen5\fi}} + +% lower height of box #2 with #1 +% to be used in conjunction with \M to construct consonant clusters +\def\R#1#2{\setbox0=\hbox{#2}% + \dimen0=\ht0\advance\dimen0by-#1% + \ht0=\dimen0\box0} + +% lower glyph #2 with #1 ex +% to be used to lower the virama sign when it is placed on top of a glyph +\def\N#1#2{\setbox0=\hbox{\lower#1ex\hbox{#2}}\dp0=0pt\box0} + +%%%%%% single letter commands + +\def\D#1{{\mm\char#1}} % show single Malayalam characters +\def\C{\char} +\def\K#1{\kern#1em} +\def\T{\puton} +\def\Q#1#2{\putrighton{#2}{#1}} +\def\M#1#2{\putrightbelow{#2}{#1}} +\def\X{\leavevmode\hbox} +\def\<#1>{\leavevmode{\char#1}} + +%%%%%% digit usage + +\newif\ifmmfigs\mmfigsfalse + +\def\mmfigures{\mmfigstrue} +\def\rmfigures{\mmfigsfalse} + +\def\mmzero{\ifmmfigs\<102>\else{\RMF 0}\fi} +\def\mmone{\ifmmfigs\<103>\else{\RMF 1}\fi} +\def\mmtwo{\ifmmfigs\<104>\else{\RMF 2}\fi} +\def\mmthree{\ifmmfigs\<105>\else{\RMF 3}\fi} +\def\mmfour{\ifmmfigs\<106>\else{\RMF 4}\fi} +\def\mmfive{\ifmmfigs\<107>\else{\RMF 5}\fi} +\def\mmsix{\ifmmfigs\<108>\else{\RMF 6}\fi} +\def\mmseven{\ifmmfigs\<109>\else{\RMF 7}\fi} +\def\mmeight{\ifmmfigs\<110>\else{\RMF 8}\fi} +\def\mmnine{\ifmmfigs\<111>\else{\RMF 9}\fi} + +\endinput + +%%%%%% end of mmmacs |