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