\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: % % %\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