
% \iffalse
%
% This file is part of the NFSS (New Font Selection Scheme) package.
% ------------------------------------------------------------------
%
% This file was contributed. In case of error please inform the
% original author.
%
% \fi


\def\fileversion{0.02}
\def\filedate{91/8/14}
\def\docdate {91/8/15}

%% \CheckSum{107}
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%%
%
%
%\iffalse   % This is a META comment
%%
%% File `scripts.doc'.
%% Copyright (C) 1991 Wayne G. Sullivan, all rights reserved.
%%
%% Copying of this file is authorized only if either
%% (1) you make absolutely no changes to your copy, or
%% (2) explain clearly that you have modified the file.
%%
%%
%% Error reports (unmodified files only):
%%                          Department of Mathematics
%%                          University College
%%                          Dublin 4, Ireland
%%                 Bitnet:  <WSULIVAN@IRLEARN>
%%
%%
%\fi
%
%
% \title{The file {\tt scripts.doc}\thanks{This file has version
%        number \fileversion, dated \filedate.  The documentation was
%        last updated on \docdate.}.}
%
% \author{Wayne G. Sullivan}
%
% \maketitle
%
% \StopEventually{}
%
% The macros below are designed for the Mittelbach\slash Sch\"opf font
% selection scheme. If this scheme is not
% loaded, the scripts macros are omitted.
%    \begin{macrocode}
\chardef\next\catcode`\@
\catcode`\@11
\@ifundefined{extract@font}
     {\errmessage{The style option `scripts' does not work unless you
                  use a format with the new font selection scheme.}
\catcode`\@\next
      \endinput}
     {}
%    \end{macrocode}
%
% We begin by identifying the latest version of this file
% on the VDU and in the {\sf log} file.
%    \begin{macrocode}
\immediate\write\sixt@@n{Style Option `scripts'
 \fileversion\space <\filedate>  (WGS) \@spaces<\docdate>}
%    \end{macrocode}
%
% \begin{macro}{\ssp} \begin{macro}{\ssb} Superscrips and subscripts
% are often used in ordinary text. \TeX's math mode provides easy
% access to such scripts, with an automatic size reduction. If one
% does not desire a size reduction, then one should use \verb+\raise+
% with \verb+\hbox+. The problem with math mode is that the fonts used
% may be totally unrelated to the one currently used in horizontal
% mode. In math mode \TeX\ can access at most sixteen fonts, each in
% three sizes. Furthermore, the fonts are subject to \verb+\mathcode+
% restrictions, so that many expressions are not affected by a change
% of math alphabet.  However, letters and digits do change, and this
% suffices in many cases. The macro \verb+\@sspssb+ temporarily
% assigns the last math alphabet to the current font so that one can
% use letters and digits as scripts.  Then \verb+\ssp{a}+ yields
% superscript \verb+a+ in the current font; \verb+\ssb+ is similar for
% subscripts. If one wishes a change of font, this should be done
% before using these macros. These macros are designed for one or a
% few letters or numbers as scripts. If a complicated expression is
% given as the parameter, strange effects may occur.
% \begin{macrocode}
\chardef\fift@@n 15
\def\ssp{\protect\@sspssb^}%
\def\ssb{\protect\@sspssb_}%
\def\@sspssb#1#2{\begingroup\ifreseTmathcodes\reseTmathcodes{#2}\fi
    \ifmmode#1{#2}\else \xdef\font@name{%
      \csname\f@family/\f@series/\f@shape/\sf@size\endcsname}%
    \pickup@font$\scriptfont\fift@@n\font@name
    \xdef\font@name{%
      \csname\f@family/\f@series/\f@shape/\ssf@size\endcsname}%
    \pickup@font\scriptscriptfont\fift@@n\font@name
    \fam\fift@@n#1{#2}$\fi\endgroup}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\reseTmathcodes}
% In some cases one wishes to use characters in the current font
% whose math codes do not allow change of font. Macros to handle this
% case have also been included. If one wishes something like \verb+[a]+
% in the current font as a superscript, then one should first include
% \verb+\reseTmathcodestrue+ and then invoke \verb+\ssp{[a]}+. To
% return to the original form, include \verb+\reseTmathcodesfalse+.
% The macros are even more fragile when resetting math codes: only
% character tokens are allowed. We use the uppercase \verb+T+ to avoid
% possible name confict with other macros which change math codes.
%    \begin{macrocode}
\newif\ifreseTmathcodes
\def\glop@ne#1#2\glop@ne{\def\@tempa{#1}\def\@tempb{#2}}
\def\reseTmathcodes#1{\def\@tempb{#1}\def\next
     {\ifx\@tempb\empty\let\next\relax\else
     \expandafter\glop@ne\@tempb\glop@ne
     \count@"7000 \advance\count@\expandafter`\@tempa\mathcode
     \expandafter`\@tempa\count@\fi\next}\next}
\catcode`\@\next
%    \end{macrocode}
% \end{macro}
%
% \Finale
%
\endinput

