% vim: ts=8 sw=8 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: mlsgalig.tex % Author: Oliver Corff % Date: November 1st, 1999 % Version: \VersionRelease % Copyright: Ulaanbaatar, Beijing, Berlin % % Description: The mls pretty-spell subroutine % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \long\def\my@mls@galig#1{% \t@kenbuffer={}% \do@mlsgalig#1\ \end@mlsgalig\the\t@kenbuffer} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \do@mlsgalig, \dodo@mlsgalig and the outer loop of \evaluate % are shamelessly stolen from or modelled after Knuth's token % scanners demonstrated in the TeXbook, exercise 11.5, chapter % 20 and, most notoriously, appendix D. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\do@mlsgalig{\afterassignment\dodo@mlsgalig\let\next= } \def\dodo@mlsgalig{\ifx\next\end@mlsgalig \let\next\relax \else \prettify@mls\let\next\do@mlsgalig\fi \next} \def\end@mlsgalig{\end@mlsgalig} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \let\following@char\empty % ditto \let\this@char\empty % general char var initialization % \newtoks\t@kenbuffer % token buffer collects output % \newif\ifShowSpecialMLS % Used for toggling token status \def\double@quote{''} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % The \evaluate construct appears in the TeXbook, disguised % as \\; see above for sources of inspiration. % \def\prettify@mls{\expandafter\if\space \next\ % <- Watch space and `%'! \let\this@char\space% \the\t@kenbuffer% \t@kenbuffer={}% \this@char% \else% \let\this@char\next% % [[\expandafter\string\this@char]] % <- used for diagnostics only. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \if\this@char E% \t@kenbuffer=\expandafter{\the\t@kenbuffer \"a}% \else% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \if\this@char O% \t@kenbuffer=\expandafter{\the\t@kenbuffer \"o}% \else% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \if\this@char U% \t@kenbuffer=\expandafter{\the\t@kenbuffer \"u}% \else% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \if\this@char S% \t@kenbuffer=\expandafter{\the\t@kenbuffer \sh}% \else% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \if\this@char G% \t@kenbuffer=\expandafter{\the\t@kenbuffer \g}% \else% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \if\this@char '% \ifShowSpecialMLS \t@kenbuffer=\expandafter{\the\t@kenbuffer \fbox{\textsf{FVS1}}}% \else% \t@kenbuffer=\expandafter{\the\t@kenbuffer '}% \fi \else% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \if\this@char "% \ifShowSpecialMLS \t@kenbuffer=\expandafter{\the\t@kenbuffer \fbox{\textsf{FVS2}}}% \else% \t@kenbuffer=\expandafter{\the\t@kenbuffer ''}% \fi \else% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \if\this@char *% \ifShowSpecialMLS \t@kenbuffer=\expandafter{\the\t@kenbuffer \fbox{\textsf{*}}}% \else \t@kenbuffer=\expandafter{\the\t@kenbuffer *}% \fi \else% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \if\this@char -% \ifShowSpecialMLS \t@kenbuffer=\expandafter{\the\t@kenbuffer \fbox{\textsf{MSP}}}% \else \t@kenbuffer=\expandafter{\the\t@kenbuffer -}% \fi \else% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \if\this@char =% \ifShowSpecialMLS \t@kenbuffer=\expandafter{\the\t@kenbuffer \fbox{\textsf{MVS}}}% \else \t@kenbuffer=\expandafter{\the\t@kenbuffer =}% \fi \else% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \the\t@kenbuffer\this@char\t@kenbuffer={}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fi% <- end of evaluate else branch % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % }% End of evaluate definition %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \endinput % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % The file mlsgalig.tex ends here. % % O. Corff, (c) 1999, Ulaanbaatar, Beijing, Berlin % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%