%%% Start-of-TeX-file mathtime.tex
%%% ====================================================================
%%%  @TeX-file{
%%%     author          = "Adam H. Lewenberg",
%%%     version         = "1.30",
%%%     date            = "08 April 1994",
%%%     filename        = "mathtime.tex",
%%%     address         = "Department of Mathematics
%%%                        University of Illinois at Urbana-Champaign
%%%                        Urbana, Illinois 61801
%%%                        USA
%%%                        Tel: (217) 333-3350",
%%%     checksum        = "36707 978 4110 34084",
%%%     email           = "adam@math.uiuc.edu",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "MathTime PostScript TeXplorator's",
%%%     supported       = "yes",
%%%     abstract        = "These macros replace the Computer Modern
%%%                        math fonts by the MathTime math fonts (from
%%%                        the TeXplorators Corp.)",
%%%     docstring       = "This file contains macros to define
%%%                        text fonts and math fonts using PostScript
%%%                        fonts for text and the MathTime fonts for
%%%                        math.  An example of how this is
%%%                        done is given at the bottom of this file.
%%%                        This file uses the mtmacs.tex set of macros
%%%                        that come with the MathTime fonts. These
%%%                        macros are compatible with:
%%%                             PLAIN
%%%                             AmSTeX (version 2.1 or later)
%%%                             AmSTeX+AMSPPT.STY
%%%                             LAmSTeX (version 2.0 or later)
%%%
%%%                        These macros are decidedly NOT compatible
%%%                        with LaTeX or the NFSS (New Font
%%%                        Selection Scheme).
%%%
%%%                        A sample style using these macros is given
%%%                        in the file mttim10.tex (available
%%%                        separately).
%%%
%%%                        Note that these macros are USELESS without
%%%                        the MathTime fonts. These fonts are
%%%                        available from the TeXplorators Corp
%%%                        and are NOT freely-copyable (although
%%%                        inexpensive). 
%%%
%%%                        The checksum field above contains a CRC-16
%%%                        checksum as the first value, followed by the
%%%                        equivalent of the standard UNIX wc (word
%%%                        count) utility output of lines, words, and
%%%                        characters.  This is produced by Robert
%%%                        Solovay's checksum utility.",
%%%     dependencies    = "mtmacs.tex MathTime-fonts"
%%%  }
%%% ====================================================================
%%% mathtime.tex version 1.30
%%% Adam H. Lewenberg    adam@math.uiuc.edu
%%% Department of Mathematics, University of Illinois at Urbana-Champaign
%%%  -- Please report any bugs to the above address. --
%%%
%%% COPYRIGHT: This file copyright 1993, 1994 by Adam H. Lewenberg. For
%%% restrictions on use see below.
%%%
%%% RESTRICTIONS: This file is freely copyable. If you want to change
%%% something, change the filename from mathtime.tex to something else and
%%% indicate any changes in the file itself, or else remove my name
%%% from the file completely. However, you are allowed to remove all
%%% lines beginning with "%% " (two percent characters followed by a
%%% space). 
%%%
%%% SUMMARY:  A generic PostScript-text-fonts/MathTime-math-fonts
%%% style. Note well that if a non-PostScript font is used for the text
%%% faces, bad things will happen. For use, see the instructions
%%% following the \endinput below. For information on mtmacs.tex, see the 
%%% mtmacs.tex documentation that comes with the MathTime fonts.
%%%
%%% The mathtime.tex macros can be used within a group safely. 
%%%
%%% The MathTime fonts are available from the TeXplorator's Corporation
%%% (address given below).  Although the file mathtime.tex is freely
%%% copyable, the MathTime fonts are not.
%%%
%%%            The TeXplorators Corporation
%%%            1572 West Gray, #377
%%%            Houston, TX  77019-4948  USA
%%%
%%% GLOBAL CONSTRUCTS:
%%%
%%%             (none)
%%%
%%% COMPATIBLE WITH:
%%%             Plain
%%%             AmSTeX
%%%             AmSTeX + AMSPPT.STY
%%%             LAmSTeX
%%%
%%% (See COMPATIBILITY NOTES below!!)
%%%
%%% THINGS TO DO:
%%%
%%%       1. Change \MathRoman and other mtmacs.tex commands to work in
%%%          eight point.
%%%
%%% USE: The file mathtime.tex by itself does not change fonts, rather,
%%% it sets up macros to change fonts. For an example and instructions
%%% on the font-changing macros, see the bottom of this file (search
%%% for the string 'Sample Implementation'), or see the file mttim10.tex.
%%%
%%% COMPATIBILITY NOTES: mtmacs.tex changes the catcode of _ (the
%%% underscore character) from 8 (subscript) to 13 (active). This can
%%% cause problems if some other macro package tries to play with the _
%%% character (for example, old versions of the eplain.tex package). A
%%% fix is given below in section 2.
%%%
%%% When using with AmSTeX+AMSPPT.STY load mathtime.tex AFTER the
%%% \documentstyle{amsppt} command and BEFORE \topmatter.
%%%
%%% Neither plain.tex or amstex.tex defines a smallcaps control
%%% sequence (although AMSPPT.STY defines \smc). So I have made the
%%% control sequence \CapsAndSmallCaps{...} define \sc to be the font
%%% \tensmc if is called outside of AMSPPT.STY.
%%%
%%% FONT FAMILIES: A comment about font families: There are only
%%% sixteen font families available to TeX. Here is a summary of the
%%% families PLAIN uses: 
%%%     0    text roman
%%%     1    math italic
%%%     2    math symbols
%%%     3    math extensions
%%%     4    text italic
%%%     5    text bold
%%%     6    text slant (oblique)
%%%     7    typewriter (monospaced)
%%
%%% AMSTEX has the potential to use 6 more: 
%%%   MSAM*    math symbols A
%%%   MSBM*    math symbols B
%%%   EUFM     Euler Fraktur medium
%%%   EUFB     Euler Fraktur bold
%%%   EUSM     Euler Script medium
%%%   BOLD     Bold versions of cmsy/cmmi   NB: Uses TWO (2) families!!!!
%%
%%% Those marked with a * are used by AMSPPT.STY. So, if AMSPPT.STY is
%%% called, there are only 6 left. So, at best you have 8 remaining
%%% and at worst you have 2 remaining. The only families used up by
%%% mathtime.tex are in the optional macros \NewCalligraphic and the
%%% \OldNumeralsNewFamily macros. In short, \NewCalligraphic and
%%% \OldNumeralsNewFamily should be used with care. (But read section
%%% 3E carefully on ways of using OldNumerals wihtout using up a font
%%% family.) 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 1. Preliminary business
%%
%%   1A. Ensure that this file is loaded only once.
%%
% Load mathtime.tex only once.
\ifx\mathtimeloaded\undefined
  \let\next\relax
  \let\mathtimeloaded\relax
\else
  \message{[mathtime.tex already loaded]}%
  \let\next\endinput
\fi
\next
%
%%
%%   1B. Save various catcodes. 
%%
% Save the catcodes of @ and ". (From Michal Jaegermann)
\edef\recoveratcodezqrz{\catcode`\noexpand\@=\the\catcode`\@}
\catcode`\@=11
\edef\recoverquotecodezqrz{\catcode`\noexpand\"=\the\catcode`\"}
\catcode`\"=12
%
%%
%%   1C. Define a generic load-only-once macro. 
%%
\def\loadonlyonce#1{%
  \expandafter\ifx\csname #1\endcsname\relax
  \else \message{[#1 already loaded]}\endinput\fi
  \expandafter\let\csname #1\endcsname\empty
}
%
%%
%%   1D. Make a banner macro. 
%%
\def\FONTStyle#1{
\message{This is the #1 style.}
\message{For use with (PlainTeX/AmsTeX/AmsTeX+amsppt.sty/LamsTeX).}
\message{--Please report any problems to adam@math.uiuc.edu--}
}
%
%%
%%   1E. Define some \newif's.
%%
\newif\ifAMSTEXloaded
\newif\ifAMSPPTloaded
%
\expandafter\ifx\csname amsppt.sty\endcsname\relax
     \AMSPPTloadedfalse\else\AMSPPTloadedtrue\fi
%
\ifx\amstexloaded@\relax\AMSTEXloadedtrue\else\AMSTEXloadedfalse\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 2. Load mtmacs.tex and reinstate the catcode of @.
%%
\input mtmacs
% Make the catcode of @ a letter again. (The old version of mtmacs.tex
% would fiddle with the catcode of @.)
\catcode`\@=11
%%
%% NOTE WELL: The catcode of _ (the underscore) is changed from 8
%% (as it is in PLAIN, LATEX, AMSTEX, etc) to "active" by mtmacs.tex.
%% This can have dire consequences if some other package needs to use
%% the _ in its \catcode=8 role. If this is the case, put the lines
%%
%%     \xdef\recoverunderscore{\catcode`\noexpand\_=\the\catcode`\_}
%%     \catcode`\_=8
%%
%% right BEFORE the underscore is used, and then put 
%%
%%     \recoverunderscore
%%
%% right after you are done using the underscore.
%% Fortunately, this circumstance is relatively rare.
%%
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 3. Define the various fonts: 
%% 	3A. Math fonts
%%	3B. Text fonts
%%	3C. AMSfonts
%%	3D. Other fonts (Calligraphic)
%%	3E. Other fonts (Old Style Digits)
%%
%% The format is slightly different in each case, but the font sizes
%% are given by the following:
%%
%% {10pt sz}{9pt sz}{8pt sz}{7pt sz}{6pt sz}{5pt sz}
%%    #1       #2      #3      #4      #5      #6   
%%   text                    script         scriptscript
%%
%% In every instance it is important to put something for each font
%% size even if you do not plan to use that size. For example, in none of
%% the packages is the nine point used, but put something in anyway. 
%%
%%%%%%%%%%%%%%%%%%%%%%
%%   3A. Math fonts
%%       Example of use:
%%
%%          \mathitalic{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%          \mathsymbols{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%          \mathextension{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%
%
% family 1  (uses MTMI)
\def\mathitalic#1#2#3#4#5#6{
  \MTMI{#1}{#4}{#6}
  \font\teni=\fontname\textfont\@ne
  \font\seveni=\fontname\scriptfont\@ne
  \font\fivei=\fontname\scriptscriptfont\@ne
  \ifAMSPPTloaded
%   \font\ninei=MTMI at #2  \skewchar\ninei=45
    \font\eighti=MTMI at #3  \skewchar\eighti=45
    \font\sixi=MTMI at #5   \skewchar\sixi=45
  \fi
}
%
% family 2  (uses MTSY)
\def\mathsymbols#1#2#3#4#5#6{
  \MTSY{#1}{#4}{#6}
  \font\tensy=\fontname\textfont\tw@
  \font\sevensy=\fontname\scriptfont\tw@ 
  \font\fivesy=\fontname\scriptscriptfont\tw@
  \ifAMSPPTloaded
%   \font\ninesy=MTMI at #2  \skewchar\ninei=48
    \font\eightsy=MTSY at #3  \skewchar\eightsy=48
    \font\sixsy=MTSY at #5   \skewchar\sixsy=48
  \fi
}
%
% family 3  (uses MTEX)
\def\mathextension#1#2#3#4#5#6{
  \MTEX{#1}
  \font\tenex=\fontname\textfont\thr@@
  \ifAMSPPTloaded
%   \font\nineex=MTEX at #2
    \font\sevenex=MTEX at #4
    \font\eightex=MTEX at #3
  \fi
}
%
%%
%%%%%%%%%%%%%%%%%%%%%%
%%   3B. Text fonts
%%       Example of use:
%%
%%       (The format is similar to the math fonts, except the first
%%       argument must be the base name of the font.)
%%           \Roman{ptmr}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%           \Boldface{ptmrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%           \Italic{ptmri}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%           \Slant{ptmro}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%           \Typewriter{pcrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%           \CapsAndSmallCaps{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%% 
%% Each of these control sequences also defines a macro which defines
%% the font they call. For example, \Roman{ptmr}..{} defines the macro
%% \RomanFont to be ptmr. Thus, you can say things like
%%
%%            \font\bigtext=\RomanFont at 20pt 
%%
%% So, you can more easily change from one font style to another
%% since \bigtext will not be a specific font but rather a large
%% version of whatever the Roman font is. The macros so defined are: 
%%
%%            \RomanFont
%%            \ItalicFont
%%            \SlantFont
%%            \BoldfaceFont
%%            \TypewriterFont
%%            \CapsAndSmallCapsFont
%%
%% The font defining  macros are all implemented ad-hoc because of the
%% ad-hoc nature in which font families use fonts in the various macro
%% packages. The following table spells this out.
%%
%% PLAIN
%% fam  text    script  scriptscript
%% 3    10      10      10
%% 4    10      undef   undef
%% 5    10      undef   undef
%% 6    10      7       5
%% 7    10      undef   undef
%%
%% AMSTEX
%% fam  text    script  scriptscript
%% 3    10      10      10
%% 4    10      10      10
%% 5    10      10      10
%% 6    10      7       5
%% 7    10      undef   undef
%%
%% AMSTEX+AMSPPT.STY
%% fam  text    script  scriptscript
%% 3    10      7       7
%% 4    10      7       7
%% 5    10      10      10
%% 6    10      7       5
%% 7    10      undef   undef
%%
%% LAMSTEX (same as AMSTEX)
%% fam  text    script  scriptscript
%% 4    10      10      10
%% 5    10      10      10
%% 6    10      7       5
%% 7    10      undef   undef
%%
%
% family 0
\def\Roman#1#2#3#4#5#6#7{
 \font\tenrm=#1 at #2
 \font\sevenrm=#1 at #5
 \font\fiverm=#1 at #7
 \textfont0=\tenrm \scriptfont0=\sevenrm 
 \scriptscriptfont0=\fiverm
 \ifAMSPPTloaded 
%  \font\ninerm=#1 at #3
   \font\eightrm=#1 at #4
   \font\sixrm=#1 at #6
 \fi
 \edef\RomanFont{#1 }%
}
%
% family 4
\def\Italic#1#2#3#4#5#6#7{
 \font\tenit=#1 at #2
 \textfont4=\tenit
 \ifAMSPPTloaded
   \font\sevenit=#1 at #5
   \scriptfont4=\sevenit
   \scriptscriptfont4=\sevenit
%  \font\nineit=#1 at #3
   \font\eightit=#1 at #4
 \else
   \ifAMSTEXloaded
     \scriptfont4=\tenit
     \scriptscriptfont4=\tenit
   \fi
 \fi
 \edef\ItalicFont{#1 }%
}
%
% family 5
\def\Slant#1#2#3#4#5#6#7{
 \font\tensl=#1 at #2
 \textfont5=\tensl
 \ifAMSTEXloaded
   \scriptfont5=\tensl
   \scriptscriptfont5=\tensl
 \fi
 \ifAMSPPTloaded
%  \font\ninesl=#1 at #3
   \font\eightsl=#1 at #4
 \fi
 \edef\SlantFont{#1 }%
}
%
% family 6
\def\Boldface#1#2#3#4#5#6#7{
 \font\tenbf=#1 at #2
 \font\sevenbf=#1 at #5
 \font\fivebf=#1 at #7
 \textfont6=\tenbf \scriptfont\bffam=\sevenbf
 \scriptscriptfont\bffam=\fivebf
 \ifAMSPPTloaded
%  \font\ninebf=#1 at #3
   \font\eightbf=#1 at #4
   \font\sixbf=#1 at #6
 \fi
 \edef\BoldfaceFont{#1 }%
}
%
% family 7
\def\Typewriter#1#2#3#4#5#6#7{
 \font\tentt=#1 at #2
 \textfont7=\tentt
 \ifAMSPPTloaded
%  \font\ninett=#1 at #3
   \font\eighttt=#1 at #4
 \fi
 \edef\TypewriterFont{#1 }%
}
%
% (no family)
\def\CapsAndSmallCaps#1#2#3#4#5#6#7{
 \font\tensmc=#1 at #2
%\font\ninesmc=#1 at #3
 \font\eightsmc=#1 at #4
% If NOT in amsppt.sty define \sc
 \ifAMSPPTloaded\else \def\sc{\tensmc}\fi
 \edef\CapsAndSmallCapsFont{#1 }%
}
%
%%%%%%%%%%%%%%%%%%%%%%
%%   3C. AMSfonts
%%       Example of use:
%%           \AMSFonts{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%
%%       NOTE: Works with AmsTeX version 2.1 or later.
%%
%% I first define a generic AMSfont loading mechanism. 
%% \AMSFontFamily{msa}{msam}{\msafam}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%      #1          msa = \font name prefix
%%      #2         msam = file name prefix
%%      #3      \msafam = family number
%%      #4         10pt = textfont
%%      #5          9pt = (for later use)
%%      #6          8pt = \eightpoint textfont
%%      #7          7pt = scriptfont
%%      #8          6pt = \eightpoint textfont
%%      #9          5pt = scriptscriptfont
%%
%
%% Those who use the Blue Sky PostScript AMS fonts take note.
%% The msam and msbm fonts in the PS versions come in 10, 7 and 5
%% point sizes. If AMSPPT.STY is used we also need 8 and 6 point
%% sizes. If you have use the PS versions of the AMS fonts you should
%% have the lines:
%%      \def\PSAMSFonts{TT}%  Blue Sky PS AMS fonts: True
%%      %%\def\PSAMSFonts{TF}% Blue Sky PS AMS fonts: False
%% in your AMSPPT.STY file. If you don't, do so NOW! Otherwise, the
%% mathtime.tex macros will not work correctly. 
%
\def\ef@#1{\expandafter\font\csname #1\endcsname}
\def\DefineAMSFontFamily#1#2#3#4#5#6#7#8#9{%
  \ef@{ten#1}=#210 at #4
  \ef@{seven#1}=#27 at #7
  \ef@{five#1}=#25 at #9
  \textfont#3=\csname ten#1\endcsname
  \scriptfont#3=\csname seven#1\endcsname
  \scriptscriptfont#3=\csname five#1\endcsname
  \ifAMSPPTloaded
    \if\PSAMSFonts
%     \ef@{nine#1}=#210 at #5
      \ef@{eight#1}=#27 at #6
      \ef@{six#1}=#25 at #8
    \else
%     \ef@{nine#1}=#29 at #5
      \ef@{eight#1}=#28 at #6
      \ef@{six#1}=#26 at #8
    \fi
  \fi
}
%
\def\AMSFonts#1#2#3#4#5#6{
  \ifAMSTEXloaded
    \ifx\loadmsam\empty
      \DefineAMSFontFamily{msa}{msam}{\msafam}{#1}{#2}{#3}{#4}{#5}{#6}
    \fi
    \ifx\loadmsbm\empty
      \DefineAMSFontFamily{msb}{msbm}{\msbfam}{#1}{#2}{#3}{#4}{#5}{#6}
    \fi
    \ifx\loadeufm\empty
      \DefineAMSFontFamily{eufm}{eufm}{\eufmfam}{#1}{#2}{#3}{#4}{#5}{#6}
    \fi
    \ifx\loadeufb\empty
      \DefineAMSFontFamily{eufb}{eufb}{\eufbfam}{#1}{#2}{#3}{#4}{#5}{#6}
    \fi
    \ifx\loadeusm\empty
      \DefineAMSFontFamily{eusm}{eusm}{\eusmfam}{#1}{#2}{#3}{#4}{#5}{#6}
    \fi
    \ifx\loadbold\empty
      \DefineAMSFontFamily{cmmib}{cmmib}{\cmmibfam}{#1}{#2}{#3}{#4}{#5}{#6}
    \fi
  \else\relax
  \fi
  \ifAMSPPTloaded
  \else
  \def\loadextrasizes@##1##2##3##4##5##6##7{%
    \ifx\undefined##1%
    \else
      \addto\tenpoint{\textfont##1##3\scriptfont##1##5%
         \scriptscriptfont##1##7}%
      \addto\eightpoint{\textfont##1##4\scriptfont##1##6%
         \scriptscriptfont##1##7}%
    \fi
  }%
  \fi
}
%%%%%%%%%%%%%%%%%%%%%%
%%   3D. Other fonts (Calligraphic) [Uses a \newfam!]
%%       Example of use:
%%          \NewCalligraphic{cmsy10}{cmsy9}{cmsy8}{cmsy7}{cmsy6}{cmsy5}
%%
%%       IMPORTANT: If you do NOT use \NewCalligraphic, then \cal (or
%%       \Cal in AMSTEX) will NOT work!
%%
%%       NOTE: Different format than before. The skewchar of '60 is
%%       from cmsy. Change this if necessary.  Note also that
%%       mtmacs.tex fixes \cal and \Cal, so we don't have to.
%%
%%       Usually, the calligraphic characters come from font family 2
%%       (which are the math symbols). However, the MathTime fonts do
%%       not work this way. Instead, they assume you are using a
%%       different font which contains the script fonts.
%%       Since family 2 is already used up, the mtmacs.tex macros
%%       allocate a new family called \Calfam.  Since there are only
%%       16 font families available, use this with care.
%%
%
\def\NewCalligraphic#1#2#3#4#5#6{
  \Calligraphic{#1}{#4}{#6}% Allocates a new font family!!
  \font\tencal=\fontname\textfont\Calfam
  \font\sevencal=\fontname\scriptfont\Calfam
  \font\fivecal=\fontname\scriptscriptfont\Calfam
  \ifAMSPPTloaded
%   \font\ninecal=#2  \skewchar\ninecal='60
    \font\eightcal=#3  \skewchar\eightcal='60
    \font\sixcal=#5   \skewchar\sixcal='60
    \addto\eightpoint{\textfont\Calfam=\eightcal
    \scriptfont\Calfam=\sixcal\scriptscriptfont\Calfam=\fivecal}
  \fi
}
%%%%%%%%%%%%%%%%%%%%%%
%%   3E. Other fonts (Old Style Digits)
%%       Example of use:
%%           \OldNumeralsOldFamily{1}
%%                     or
%%           \OldNumeralsNewFamily{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt} 
%%                                        % This one uses a \newfam
%%
%% If you are using AMSTEX (or an extension of AMSTEX) you can use the
%% following: 
%%
%%           \OldNumeralsTempFamily{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%
%% The \OldNumerals macro assumes that the digits are in the normal
%% place where numbers are found in a standard TeX font. If this is
%% not the case, some VF hacking will be necessary. 
%%
%% Note that not every set of fonts will have oldstyle digits. If one
%% of the above three macros is not called, then mathtime.tex cannot
%% be responsible for what happens when \oldstyle is called. 
%%
%% In PLAIN and AMSTEX the old style digits are accessed by calling
%% the math-italic family. Of course, the math-italic family is no
%% longer appropriate, so we must do something else. It seems silly to
%% use up a whole font family for only 10 characters, so a way around
%% it is called for. There are 3 options (in decreasing order of
%% desirability): 
%%
%%      1. [FIRST CHOICE] If the oldstyle numerals are contained in a
%%         font with a font family already assigned (for example, in
%%         Computer Modern the oldstyle numerals are in family 1), then
%%         use the command \OldNumeralsOldFamily{n} where "n" is the
%%         family number. For example, in the context of Computer
%%         Modern you should use the command \OldNumeralsFamily{1}. 
%%
%%         Example of use:
%%
%%         \OldNumeralsOldFamily{1}. 
%%
%%      2. [SECOND CHOICE; can only be used with
%%          AMSTEX/AMSTEX+AMSPPT.STY/LAMSTEX!]   
%%         We "fake" a family, that is we temporarily use family 15
%%         for the oldnos. This is slow, but it avoids the use
%%         of a \newfam.
%%
%%         Example of use:
%%
%%         \OldNumeralsTempFamily{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%
%%      3. [THIRD CHOICE] You can use up a whole font family (the
%%         easiest and perhaps most efficient method). To do this, use
%%         the command \OldNumeralsNewFamily. This is the least
%%         desirable command as it uses up one of the precious 16 font
%%         families, but if you have plenty to spare you might as well
%%         use it.
%%
%%         Example of use:
%%
%%         \OldNumeralsNewFamily{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%
%%                    (or synonomously)
%%
%%         \OldNumerals{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%
%% Note also that mtmacs.tex undefines \oldnos (although for some
%% strange reason \oldstyle is not touched).
%%
%%         PLAIN:  ${\oldstyle 1234}$   (only in math mode)
%%        AMSTEX:  \oldnos{1234}        (text AND math mode)
%%
%
%%%% FIRST CHOICE
\def\DEFoldnos{%
  \def\oldnos##1{\RIfM@{\mathcode`\,="013B \fam\oldnumfam##1}\else
  \leavevmode\hbox{$\m@th\mathcode`\,="013B \fam\oldnumfam##1$}\fi}
}% a hack to get around \if.. \fi silliness. 
%
\def\OldNumeralsOldFamily#1{% Use an existing family.
  \edef\oldnumfam{#1}
  \ifAMSTEXloaded
    \DEFoldnos\let\DEFoldnos\undefined
  \else
    \def\oldstyle{\fam\oldnumfam \tenoldnum}
  \fi
}
%%%% SECOND CHOICE
\def\DEFtempoldnos{%
  \def\oldnos##1{\RIfM@{\mathcode`\,="013B \MToldnos@{##1}}\else
  \leavevmode\hbox{$\m@th\mathcode`\,="013B \MToldnos@{##1}$}\fi}
}
%
\def\tempoldnumfam@{15}% Use this family as the temporary family.
\def\MToldnos@#1{% \MToldnos@ MUST be used in math mode.
  \ifmmode
    \bgroup
    \textfont15=\tenoldnum \scriptfont15=\sevenoldnum
    \scriptscriptfont15=\fiveoldnum
    \text{\tempoldnumfam@ #1}%
    \egroup
  \else
    \relax
    \errmessage{MathTime error: Use \string\oldstyle\ in math mode only.}%
  \fi
}%
%
\newlinechar=`\^^J
\def\OldNumeralsTempFamily#1#2#3#4#5#6#7{%
  \ifAMSTEXloaded
    \font\tenoldnum=#1 at #2
    \font\sevenoldnum=#1 at #5
    \font\fiveoldnum=#1 at #7
    \def\textdef@@#1{\textdef@#1\rm\textdef@#1\bf\textdef@#1\sl\textdef@#1\it%
                     \textdef@#1\tempoldnum}
    \DEFtempoldnos\let\DEFtempoldnos\undefined
  \else
    \message{Warning: cannot use \string\OldNumeralsTempFamily\space%
             outside AMSTEX.^^J
             I am using \string\OldNumeralsNewFamily\space instead.}%
    \OldNumerals{#1}{#2}{#3}{#4}{#5}{#6}{#7}%
  \fi
}%
%%%% THIRD CHOICE
\edef\innernewfam{\expandafter\noexpand\csname newfam\endcsname}
\def\OldNumerals#1#2#3#4#5#6#7{%
  \ifx\oldnumfam\undefined
    \innernewfam\oldnumfam % Define a \newfam only if \oldnumfam is
  \fi                      % not yet defined. 
  \font\tenoldnum=#1 at #2
  \font\sevenoldnum=#1 at #5
  \font\fiveoldnum=#1 at #7
  \textfont\oldnumfam=\tenoldnum \scriptfont\oldnumfam=\sevenoldnum
  \scriptscriptfont\oldnumfam=\fiveoldnum
  \ifAMSTEXloaded
    \DEFoldnos\let\DEFoldnos\undefined
  \else
    \def\oldstyle{\fam\oldnumfam \tenoldnum}
  \fi
}
\let\OldNumeralsNewFamily\OldNumerals
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 4. The logos (taken from texnames.sty v1.08 by Nelson Beebe)
%%
%% Normally, the logo for AMSTEX uses family 2 fonts in its definition,
%% which of course will give garbage in the context of the MathTime
%% fonts. In texnames.sty the AMSTEX logo uses \cal: in this case if
%% \NewCalligraphic has been called with fonts other than the cmsy
%% fonts, the logo will look odd. In other words, the only way to get
%% the \AmSTeX logo to look the way it is supposed to look is to use
%% \NewCalligraphic with the cmsy fonts. 
%%
%% So I have decided that mathtime.tex will make `fake' logos which do
%% not use family 2 or \cal. If you want the real logos, you must call
%% the \MakeLogos macro. If \NewCalligraphic has been called the
%% \MakeLogos macro will use as definition for the logos the
%% definitions from texnames.sty. If \NewCalligraphic has _not_ been
%% called, then the logo macros remain faked. In the former case, if
%% fonts other than the cmsy fonts are used in \NewCalligraphic, the
%% logos may look wrong.
%%
% Define "fake" logos:
%
\ifAMSTEXloaded\def\AmSTeX{AMS\TeX}\fi% Fake it
%
\ifx\laxread@\undefined
\else
  \ifx\LamSTeX\undefined% Normally defined in paper.st
  \else
    \def\LamSTeX{LAMS\TeX}% Fake it. 
  \fi
\fi
%
\def\MakeLogos{% Definitions taken from texnames.sty, ver. 1.08
  \ifx\Calfam\undefined
  \else
    \ifAMSTEXloaded
      \def\AmSTeX{$\Cal A$\kern-.1667em\lower.5ex\hbox{$\Cal M$}%
              \kern-.125em$\Cal S$-\TeX}% Will look funny if cmsy fonts
                                        % not used in \NewCalligraphic.
    \fi
    \ifx\laxread@\undefined
    \else
      \ifx\LamSTeX\undefined
      \else
        \def\LamSTeX{L\raise.42ex\hbox{\kern-.3em\the\scriptfont\Calfam A}%
                     \kern-.2em\lower.376ex\hbox{\the\textfont\Calfam M}%
                     \kern-.125em {\the\textfont\Calfam S}-\TeX}%
      \fi
    \fi
  \fi
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 5. Accents and other Postscript incompatibilities.
\ifAMSTEXloaded
  \def\D#1{{\accent"C7 #1}}  % Change the dot accent for postscript
                             % fonts.
  \makeacc@\dot{0C7}         % AMSTEX math accent definition.
\else
  \def\dot{\mathaccent"70C7 }% PLAIN math accent definition.
  \def\.#1{{\accent"C7 #1}}
\fi
\def\H#1{{\accent"CD #1}}    % Fix Hungarian umlaut for PostScript
                             % fonts.
%% In the context of Computer Modern fonts, to get a pounds sterling
%% symbol (it looks like a script L with a horizontal line through it)
%% one types {\it\$}. But this does not work with PostScript fonts as
%% the pounds sterling symbol appears in all fonts in position "A3. So
%% I define a macro \psterling to be character ^^a3. Of course, this
%% is not strictly compatabible with PLAIN, but there really is no easy way
%% around it. Note also that this requires TeX 3.0.
%
\def\psterling{^^a3}         % Define the pounds sterling macro. Should
                             % work in all Postscript fonts. 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 6. Finish up
% Recover catcodes of @ and "
\recoverquotecodezqrz\let\recoverquotecodezqrz=\undefined
\recoveratcodezqrz\let\recoveratcodezqrz=\undefined
%
\endinput
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CHANGE LOG

Version 1.08a: (19 June 1993)

---Put in extra comments.
---Fixed TeXplorator's address.

Version 1.09:  (26 June 1993)

---Made font defintions more compatible with ambient package.
---Fixed eightpoint fonts in AMSPPT.STY.
---Rewrote AMSFonts routines. Note change in \AMSFonts format.

Version 1.09a: (29 June 1993)

---Defined \newif's only once, even if mathtime.tex is loaded multiple
   times.

Version 1.10:  (1 July 1993)

---Defined the \MakeLogos macro and fake logos.

Version 1.11:  (4 July 1993)

---Made slight change in \DefineAMSFontFamily.

Version 1.20:  (5 September 1993)

---Simplified \newif stuff. (Why doesn't anyone tell me these things?)
---Added \OldNumerals.
---Changed (slightly) the way the fake logos look.

Version 1.21:  (8 September 1993)

---Added \RomanFont, \ItalicFont et al. 
---Fixed TeXplorator's address (AGAIN). 

Version 1.22:  (21 September 1993)

---Made \DefineAMSFontFamily work with Blue Sky's PS AMS fonts.

Version 1.23:  (25 September 1993)

---Defined \psterling for pounds sterling. 

Version 1.30:  (7 April 1994)

---Change \xdef's to \edef's in catcode saving macros.
---Define new macros for OldNumerals to avoid using a \newfam.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Sample Implementation
%%
%% This style is intended as a drop-in replacement of the font
%% definitions made by PLAIN.TEX. It is compatible with PLAIN, AMSTEX,
%% AMSTEX+AMSPPT.STY and LAMSTEX. Thus, if you stick this file at the
%% top of a PLAIN or AMSTEX or LAMSTEX file, and make the
%% appropriate macro calls as illustrated below, you will get the
%% MathTime fonts for math mode and whatever text fonts you
%% specify. This package can be put in a group to restrict its
%% effects.
%%
%% NOTA BENE: 1. If you use AMSPPT.STY, make sure to \input this file AFTER
%% the \documentstyle{amsspt} statement, but BEFORE the \topmatter
%% statement. 2. Use \psterling to get the pounds sterling symbol in
%% ALL fonts. 
%% 
%% Here is an example where we define a PostScript Times-Roman style:
%
%           \input mathtime
%           \loadonlyonce{mttim10.tex} %[optional]
%
%% The next line is the font-style file's name.
%
%           \FONTStyle{PS Times Roman/MathTime [10 point]} %[optional]
%
%% Next decide on the point sizes for the math italic (MTMI), math
%% symbols (MTSY), and the math extensions (MTEX). 
%
%           \mathitalic{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%           \mathsymbols{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%           \mathextension{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%
%% Now decide on the text faces. In the example below, I have decided
%% to use ptmr at 10-9-8-7-6-5 point for
%% text-ninepoint-eightpoint-script-sixpoint-scriptscript 
%% respectively. You also need a boldface, italic, slant and
%% typewriter face. 
%% NOTE: If you are not using amsppt.sty, the eight-point and six-point
%% sizes will be ignored, BUT PUT THEM IN ANYWAY! 
%
%           \Roman{ptmr}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%           \Boldface{ptmrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%           \Italic{ptmri}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%           \Slant{ptmro}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%           \Typewriter{pcrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%           \CapsAndSmallCaps{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt} %[optional]
%
%% In case you need to use this file with AMSTEX or LAMSTEX, make sure
%% to define the AMS fonts.
%
%           \AMSFonts{10pt}{9pt}{8pt}{7pt}{6pt}{5pt} %[optional]
% 
%% If you want to use Calligraphic characters (usually those in cmsy),
%% call the \NewCalligraphic command. Note the different format from
%% \Roman, \Boldface, etc. Also note that if you do not define
%% Calligraphic characters, the \cal and \Cal commands will misbehave
%% badly. 
%%
%           \NewCalligraphic{cmsy10}{cmsy9}{cmsy8}{cmsy7}{cmsy6}{cmsy5}
%                                                      %[optional]
%
%% Since I am using the cmsy fonts I should call the \MakeLogos macro.
%% Of course, I could use \MakeLogos even if I didn't use the cmsy
%% fonts, but the logos might look funny.
%
%           \MakeLogos %[optional]
%
%% If you have old style digits (a.k.a. non-lining digits) available,
%% you can define them using \OldNumerals. If we are AMSTEX we should
%% use \OldNumeralsTempFamily (if we are not in AMSTEX, \OldNumerals
%% will be chosen automagically).
%
%           \OldNumeralsTempFamily{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt} 
%                                          %[optional]
%
%% The following are commands defined in mtmacs.tex to change which
%% fonts numbers and math text use. For more information, see the
%% mtmacs.tex documentation. They are all optional and do not work in
%% eight-point mode in AMSPPT.STY (maybe I will change that someday).
%% 
%% The \MathRoman command chooses the font and point sizes for numbers
%% and punctuation in math mode.
%
%           \MathRoman{ptmr}{10pt}{7pt}{5pt} %[optional]
%
%% The \MathBold command chooses which fonts to use as boldface in
%% math mode. The analogous result happens with \MathBoldItalic.
%
%           \MathBold{ptmb}{10pt}{7pt}{5pt} %[optional]
%           \MathBoldItalic{ptmbi}{10pt}{7pt}{5pt} %[optional]
%
%% At this point, insert other parameters that should be changed (for
%% example, \baselineskip), plus other fonts. Here are a few examples:
%% 
%%
%           \font\bigtext=\RomanFont at 12pt %[up to the user]
%           \font\ssf=phvr at 10pt  %[up to the user]
%%
%% Finally, it is important to switch to this style with the \rm
%% command.
%
%           \rm
%           \endinput
%%% End-of-TeX-file
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Start-of-TeX-file mttim10.tex
% mttim10.tex - version 1.05  (Last changed 1 July 1993)
%
% I use mathtime.tex (version >1.09a) to make a ten-point PS Times-Roman
% style. I look especially good at \magstephalf. If you use me
% with amsppt.sty, put me between the \documentstyle statement and the
% \topmatter statement. Use \psterling for pounds sterling. 
%
\input mathtime

\loadonlyonce{mttim10.tex}
\FONTStyle{PS Times-Roman/MathTime}

\mathitalic{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
\mathsymbols{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
\mathextension{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}

\Roman{ptmr}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
\Boldface{ptmb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
\Italic{ptmri}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
\Slant{ptmro}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
\Typewriter{pcrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
\CapsAndSmallCaps{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}

\AMSFonts{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}

\NewCalligraphic{cmsy10}{cmsy9}{cmsy8}{cmsy7}{cmsy6}{cmsy5}%Uses a
							   %\newfam!!!

\MakeLogos

\rm

\endinput
\endinput
%%% End-of-TeX-file