\def\fileversion{0.02} \def\filedate{91/12/12} \def\docdate {91/8/20} %% \CheckSum{122} %% \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 `xxxlfont.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 xxxlfont.doc}\thanks{This file has version % number \fileversion, dated \filedate. The documentation was % last updated on \docdate.}.} % % \author{Wayne G. Sullivan} % % \maketitle % % \StopEventually{} % \section{Skipping the tail macros} % This is a {\em hack\/} file to be used with {\tt plainfsl}. It is % designed to omit the last part of the code in {\tt lfonts.doc}. % What should be omitted is most of the material after % \verb+\input+\quad {\tt xxxlfont.sty}, but not all. % \begin{macro}{\cases} % Some of the techniques in the font selection scheme do not behave % as desired in special contexts. One difficulty arises in alignments. % The implicit grouping in alignments can at times confilct with the % use of \verb+\aftergroup+. To overcome this problem % in some cases it is necessary explicitly to include some alignment % arguments in braces. Other added macros are also included here. % \begin{macrocode} \def\cases#1{\left\{\,\vcenter{% \normalbaselines\m@th\ialign{% $##\hfil$&\quad{##}\hfil\crcr #1\crcr}}\right.}% \def\reset@font{\protect\p@reset@font} \def\p@reset@font{\fontfamily{\rmdefault}% \fontseries{\mediumseriesdefault}% \fontshape{\normalshapedefault}\selectfont} % \end{macrocode} % \end{macro} %\section{Handling math mode fonts} % \begin{macro}{yyylfont.sty} % Now we can get on with loading extra material for math mode. There % is a choice. If one wants math mode to behave like horizontal % mode regarding the choice of fonts, then the easy answer is to enter % the file name {\tt oldlfont.sty} when requested for a file name % after {\tt yyylfont.sty} cannot be found. The resulting format % behaves very much like \PlainTeX\ regarding choice of fonts in % math mode, {\em e.g.}, \verb+\rm+ in math mode will select the % math group 0, which is initially {\tt cm} roman. However, because % of mathcode values \verb+$\bf*$+ is no different from \verb+$*$+. % The only characters reliably changed by font changes in math mode % are the letters and digits. If one makes little explicit use of math % mode it is probably better to select {\tt basefont.tex}. % If one enters {\tt basefont} % rather than {\tt oldlfont.sty} when requested for a substitute for % {\tt yyylfont.sty}, then changes % of font in math mode behave like single parameter macros. Thus % to get the caligraphic letters ABC in math mode one uses % \verb+$\cal{ABC}$+. Also, only four math alphabets are % predefined: \verb+\mathrm+,\verb+\mit+,\verb+\cal+ and extensible. % If others are desired, they must be defined as explained below. % At most sixteen different font styles may be used without leaving % math mode. If one only wants an expression at standard size, % place the expression in an \verb+\hbox+ and include the \verb+\hbox+ % in the math formula. Any font may be used in the \verb+\hbox+. % \end{macro} % \begin{macro}{\lyfam} % Some consider it % advisable to reserve the limited math fonts for special symbol % fonts like the $\cal AMS$ fonts and {\tt cmmib}. The \LaTeX\ symbol % fonts add only a few new symbols, so the following is used to % exclude them. To include them, comment out the following line. % \begin{macrocode} \let\lyfam=\null % comment out if LaTeX symbol fonts desired \typeout{} \typeout{Choose oldlfont.sty or basefont} \typeout{} \input yyylfont.sty % \end{macrocode} % \end{macro} % \section{Defining new math alphabets and characters} % \begin{macro}{\newmathalphabet} % To use symbols in math mode which are not included in % standard \PlainTeX\ one % can either include the material in an \verb+\hbox+ or define a % new math alphabet. The advantage of the latter is that the symbol % will change size depending on the math context. The simplest way % to introduce an new math alphabet is as follows. % \begin{verbatim} % \newmathalphabet*{\bmit}{cmm}{b}{it} % \end{verbatim} % \end{macro} % \begin{macro}{\new@mathgroup} % \begin{macro}{\define@mathgroup} % Sadly, the above does not allow ready access to characters other than % letters and digits. However, it only loads script and scriptscript fonts % when needed. To access other characters in the font one uses % \verb+\mathchardef+. With such definitions % it is better to use \verb+\new@mathgroup+. % \begin{verbatim} % \new@mathgroup\bmitgroup % \define@mathgroup{\mv@normal}{\bmitgroup}{cmm}{b}{it} % \xdef\bmit{\noexpand\use@mathgroup\expandafter % \noexpand\csname=cmm\endcsname\noexpand\bmitgroup} % \end{verbatim} % which results in math fonts being defined for \verb+\bmit+ for each % new size. Note the catcode of {\tt @} may need changing. Furthermore % some command, {\em e.g.}, \verb+\rm+, which invokes \verb+\selectfont+ % is required to complete the process. One may use either % \verb+\newmathalphabet+ % or \verb+\define@mathgroup+ with \verb+\new@mathgroup+ to define % a new math font; do not use both for the same new math font. % \end{macro} % \end{macro} % \begin{macro}{\makemathchar} % Now to define new math characters one may use \verb+\bmit+ to % produce bold Greek minuscules. To get bold $\alpha$ we need % the correct \verb+\mathchardef+. Each math character has % class number (0--7), a math alphabet number (0--15) and a % character location (0--255). From font tables we have $\alpha$ % at position 11 and we take the class 0. The macro below uses the % math alphabet identifier to evaluate the required number. % Then the mathchar is defined as follows: % \begin{verbatim} % \makemathchar{\alphabold}{0}{\bmit}{11} % \end{verbatim} % This is the macro which does the work: % \begin{macrocode} \def\makemathchar#1#2#3#4{\count@=#2\relax \multiply\count@\sixt@@n\setbox0\hbox {$#3\global\advance\count@\mathgroup$}\multiply\count@\@cclvi \advance\count@#4\relax\mathchardef#1=\count@} % \end{macrocode} % \end{macro} % This definition may also be used with font identifiers defined % using \verb+\newmathalphabet+, but the size of the fonts may not be % correct unless the math font identifier has appeared in the same or % previous math expression since the last size change. % Of course, one must have the {\tt TFM} files for the fonts at the various % text and script sizes. % \section{Inhibiting math fonts} % \begin{macro}{\stopdefmathfonts} % \begin{macro}{\restoredefmathfonts} % Math fonts set up by \verb+\define@newmathgroup+ are defined at text, % script and scriptscript for every size change, including loading % if necessary. It is % possible to inhibit fonts for math mode at specific sizes by using % \verb+\define@nomathsize+ instead of \verb+\define@mathsize+, but this % is a bit troublesome to change and will not work properly with the % subscript and superscript macros in {\tt scripts.doc}. We include here % some macros to simplify the choice of whether to load math fonts for % a given size. The sizes for script and scriptscript are still set up, % so the macros of {\tt scripts.doc} may still be used. The reader should % be aware that macros like \verb+\copyright+ (unless redefined) use % math mode so require the loading of math fonts. To inhibit math fonts % for a given size one should include \verb+\stopdefmathfonts+ just before % the size change. If the size change including the above command is enclosed % in a group, the original math font procedure will be restored at the end of % the group. Otherwise one can use \verb+\restoredefmathfonts+. % \begin{macrocode} \let\savedefine@mathfonts=\define@mathfontstrue \def\stopdefmathfonts{\let\define@mathfontstrue\define@mathfontsfalse} \def\restoredefmathfonts{\let\define@mathfontstrue\savedefine@mathfonts} % \end{macrocode} % \end{macro} % \end{macro} % \section{Local modifications} % \begin{macro}{anyextra.xyz} % To allow the user to include further macros in the format file % the file {\tt anyextra.xyz} is sought. The system should not find % a file of this name so that \TeX\ will request an alternative. If % there is nothing to add, then a null system name should be given, % or one should prepare a file which includes simply % \verb+\endinput+. All extra material should be specified by the % one file to be \verb+\input+ here. % \begin{macrocode} \typeout{} \typeout{Add extra material to the format here:} \typeout{} \input anyextra.xyz % \end{macrocode} % \end{macro} % \begin{macro}{\mathversion} % Because \LaTeX\ allows two different math versions, {\em normal\/} % and {\em bold}, the font selection scheme has two math versions. % Here we select the {\em normal} version and set % up the initial font and line spacing. % \begin{macrocode} \size{10}{12pt}\mathversion{normal}\rm % \end{macrocode} % \end{macro} % \section{Finishing off} % \begin{macro}{\dump} % It only remains to make {\tt @} into an {\em other} character and % dump the format file. We also turn on \verb+\tracingstats+, but this % is optional. % \begin{macrocode} \makeatother \tracingstats 1 % comment out if undesired \dump % \end{macrocode} % \end{macro} % \section{Extras} % Since there is a \verb+\dump+ above, the material below will not be % seen by \TeX\null. It is included because {\sc PostScript} fonts and % John Sauter's parameterization of the {\tt cm} fonts fit well into the % font selection scheme. The reader should realize that font specifications % additional to those in {\tt fontdef.tex} may be included in documents; % they do not have to be in the format file. Some material below is based % on a macro due to Sebastian Rahtz. %% EXTRA MATERIAL NOT IN THE FORMAT, BUT WHICH MAY BE OF INTEREST: % \begin{macrocode} \def\sauterfontshape#1#2#3#4{% \new@fontshape{#1}{#3}{#4}{% <5>#25<6>#26<7>#27<8>#28<9>#29<10>#210<11>#211% <12>#212<14>#214<17>#217<20>#220<25>#225}{}}% \def\ps@fs@#1#2#3#4{\new@fontshape{#1}{#2}{#3}{% <5>#4 at5pt<6>#4 at6pt<7>#4 at7pt<8>#4 at8pt% <9>#4 at9pt<10>#4 at10pt<11>#4 at11pt<12>#4 at12pt% <14>#4 at14pt<17>#4 at17pt<20>#4 at20pt<25>#4 at25pt}{}}% \sauterfontshape{cmm}{cmmib}{b}{it} \def\postscriptfontdef#1#2#3#4#5#6#7#8#9{% % 1 : short name for family % 2 : tfm name for normal font % 3 : tfm name for italic font % 4 : tfm name for bold font % 5 : tfm name for bold italic font % 6 : tfm name for smallcaps font % 7 : tfm name for bold smallcaps font % 8 : tfm name for slanted font % 9 : tfm name for slanted bold font \ps@fs@{#1}{m}{n}{#2}% \ps@fs@{#1}{m}{it}{#3}% \ps@fs@{#1}{bx}{n}{#4}% \ps@fs@{#1}{bx}{it}{#5}% \ps@fs@{#1}{m}{sc}{#6}% \ps@fs@{#1}{bx}{sc}{#7}% \ps@fs@{#1}{m}{sl}{#8}% \ps@fs@{#1}{bx}{sl}{#9}% \extra@def{#1}{}{}% % bold and bold-extended regarded as the same \subst@fontshape{#1}{b}{sc}{#1}{bx}{sc}% \subst@fontshape{#1}{b}{sl}{#1}{bx}{sl}% \subst@fontshape{#1}{b}{n}{#1}{bx}{n}% \subst@fontshape{#1}{b}{it}{#1}{bx}{it}% %% Below the control sequence \short_name is defined to %% invoke the standard font of the family. \expandafter\gdef\csname p@#1\endcsname{\family{#1}\shape \normalshapedefault\series\mediumseriesdefault \selectfont}% \expandafter\xdef\csname #1\endcsname{\noexpand\protect \expandafter\noexpand\csname p@#1\endcsname}% }% % \end{macrocode} % % % \Finale % \endinput