%\filename{basicfontmacros.tex}
%\edited{last by stolfi on Sat Mar  7 02:26:57 1987}

% Defines the font styles \rm, \mi, \sy, and \ex.

\catcode`@=11 \endlinechar=-1

  \message{basic font styles ...}

  % Style switching

    \chardef\rmfam=\z@ % Roman fonts
    \def\rm{\fam=\rmfam\relax\let\curstyle=\rm\rmfont}
    \let\curstyle=\rm % initialization

    \chardef\mifam=\@ne % Math italic fonts
    \def\mi{\fam=\mifam\relax\let\curstyle=\mi\mifont}

    \chardef\syfam=\tw@ % Symbol fonts
    \def\sy{\fam=\syfam\relax\let\curstyle=\sy\syfont}
    
  % Family 3 has a special meaning for TeX: it is used to obtain
  %   extension characters. Normally it uses the same font
  %   for all gross sizes and math styles, so it doesn't enter in the
  %   above font switching mechanisms.

    \chardef\exfam=\thr@@ % Extension fonts

  % Size switching

    \appendef\bigsizeswitch{
      \let\rmfont=\bigTXrmfont
      \basefont\rmfam=\bigBArmfont
      \scriptfont\rmfam=\bigSCrmfont
      \scriptscriptfont\rmfam=\bigSSrmfont

      \let\mifont=\bigTXmifont
      \basefont\mifam=\bigBAmifont
      \scriptfont\mifam=\bigSCmifont
      \scriptscriptfont\mifam=\bigSSmifont

      \let\syfont=\bigTXsyfont
      \basefont\syfam=\bigBAsyfont
      \scriptfont\syfam=\bigSCsyfont
      \scriptscriptfont\syfam=\bigSSsyfont
    }

    \appendef\norsizeswitch{
      \let\rmfont=\norTXrmfont
      \basefont\rmfam=\norBArmfont
      \scriptfont\rmfam=\norSCrmfont
      \scriptscriptfont\rmfam=\norSSrmfont

      \let\mifont=\norTXmifont
      \basefont\mifam=\norBAmifont
      \scriptfont\mifam=\norSCmifont
      \scriptscriptfont\mifam=\norSSmifont

      \let\syfont=\norTXsyfont
      \basefont\syfam=\norBAsyfont
      \scriptfont\syfam=\norSCsyfont
      \scriptscriptfont\syfam=\norSSsyfont
    }

    \appendef\smasizeswitch{
      \let\rmfont=\smaTXrmfont
      \basefont\rmfam=\smaBArmfont
      \scriptfont\rmfam=\smaSCrmfont
      \scriptscriptfont\rmfam=\smaSSrmfont

      \let\mifont=\smaTXmifont
      \basefont\mifam=\smaBAmifont
      \scriptfont\mifam=\smaSCmifont
      \scriptscriptfont\mifam=\smaSSmifont

      \let\syfont=\smaTXsyfont
      \basefont\syfam=\smaBAsyfont
      \scriptfont\syfam=\smaSCsyfont
      \scriptscriptfont\syfam=\smaSSsyfont
    }

\catcode`@=12 \endlinechar=`\^^M

% END

