% This is a MODIFIED and EXTENDED version of the Plain format described 
% in the TeXbook.  It's modularized so that Plain is read in first
% (to allow easy inclusion of new versions) and then appropriate macros
% are modified here.
%
% N.B.: A version number is defined at the very end of this file;
%       please change that number whenever the file is modified!

% Modified 17 Jul 86 by RAY
%          to use CM instead of AM fonts.  The new twelve point fonts
%          replace their magnified ten point counterparts.  A version
%          of plain without preloaded fonts is not needed for the CM
%          format and we no longer update the AM, TR, or HE formats. 

% Modified 26 Aug 85 by DCB
%          to first read in Plain and then make modifications.  Actually,
%          we have to make a version of Plain that has no preloaded fonts
%          or the fonts loaded here won't fit, but this is a lot easier
%          than integrating massive changes.

% Modified 14 Dec 84 by BKPH
%          to have magnified math extension fonts (for 10, 11, 12, 14, & 18 pt)
%          and to allow \big et al to work in sizes other than ten point.
%          All changes are in definitions of \font\tenex, \font\elevenex etc.
%          and \def\eightpoint, \def\ninepoint, \def\tenpoint etc.

% Created 6 Mar 84 by DCB
%          to have point sizes 8,9,10,11,12,14,16,18 (e.g., \ninepoint)
%          to define the \pointsize, \user###point (e.g., \userninepoint)
%                    and \setnormalsp@cing macros
%          All the changes except these header lines and the last
%            5 lines of the file are in the FONTS and MORE FONTS sections.

\input plain

% We make @ signs act like letters, temporarily, to avoid conflict
% between user names and internal control sequences of plain format.
\catcode`@=11

\message{Loading the plain-augmented-CM format: different fonts,}

% roman text
\font\eighteenrm=cmr10 scaled\magstep3          % 17.28 pt
\font\fourteenrm=cmr10 scaled\magstep2          % 14.4 pt
%\font\twelverm=cmr10 scaled\magstep1           % 12 pt
\font\twelverm=cmr12                            % 12 pt
\font\elevenrm=cmr10 scaled\magstephalf         % 11 pt (almost)
\font\tenrm=cmr10
\font\ninerm=cmr9
\font\eightrm=cmr8
\font\sevenrm=cmr7
\font\sixrm=cmr6
\font\fiverm=cmr5

% math italic
\font\eighteeni=cmmi10 scaled\magstep3          % 17.28 pt
\font\fourteeni=cmmi10 scaled\magstep2          % 14.4 pt
%\font\twelvei=cmmi10 scaled\magstep1           % 12 pt
\font\twelvei=cmmi12                            % 12 pt
\font\eleveni=cmmi10 scaled\magstephalf         % 11 pt (almost)
\font\teni=cmmi10
\font\ninei=cmmi9
\font\eighti=cmmi8
\font\seveni=cmmi7
\font\sixi=cmmi6
\font\fivei=cmmi5

% math symbols
\font\eighteensy=cmsy10 scaled\magstep3         % 17.28 pt
\font\fourteensy=cmsy10 scaled\magstep2         % 14.4 pt
\font\twelvesy=cmsy10 scaled\magstep1           % 12 pt (no cmsy12)
\font\elevensy=cmsy10 scaled\magstephalf        % 11 pt (almost)
\font\tensy=cmsy10
\font\ninesy=cmsy9
\font\eightsy=cmsy8
\font\sevensy=cmsy7
\font\sixsy=cmsy6
\font\fivesy=cmsy5

% math extension
\font\eighteenex=cmex10 scaled\magstep3         % 17.28 pt
\font\fourteenex=cmex10 scaled\magstep2         % 14.4 pt
\font\twelveex=cmex10 scaled\magstep1           % 12 pt (no cmex12)
\font\elevenex=cmex10 scaled\magstephalf        % 11 pt (almost)
\font\tenex=cmex10

%% NOTE: cmex comes only in ten point size, but magnified 1/2, 1, 2, 3, 4, 5

% boldface extended
\font\eighteenbf=cmbx10 scaled\magstep3         % 17.28 pt
\font\fourteenbf=cmbx10 scaled\magstep2         % 14.4 pt
%\font\twelvebf=cmbx10 scaled\magstep1          % 12 pt
\font\twelvebf=cmbx12                           % 12 pt
\font\elevenbf=cmbx10 scaled\magstephalf        % 11 pt (almost)
\font\tenbf=cmbx10
\font\ninebf=cmbx9
\font\eightbf=cmbx8
\font\sevenbf=cmbx7
\font\sixbf=cmbx6
\font\fivebf=cmbx5

% typewriter
\font\eighteentt=cmtt10 scaled\magstep3         % 17.28 pt
\font\fourteentt=cmtt10 scaled\magstep2         % 14.4 pt
%\font\twelvett=cmtt10 scaled \magstep1         % 12pt
\font\twelvett=cmtt12                           % 12pt
\font\eleventt=cmtt10 scaled \magstephalf       % 11pt (almost)
\font\tentt=cmtt10
\font\ninett=cmtt9
\font\eighttt=cmtt8

\font\preloaded=cmsltt10 % slanted typewriter

% slanted roman
\font\eighteensl=cmsl10 scaled\magstep3         % 17.28 pt
\font\fourteensl=cmsl10 scaled\magstep2         % 14.4 pt
%\font\twelvesl=cmsl10 scaled \magstep1         % 12pt
\font\twelvesl=cmsl12                           % 12pt
\font\elevensl=cmsl10 scaled \magstephalf       % 11pt (almost)
\font\tensl=cmsl10
\font\ninesl=cmsl9
\font\eightsl=cmsl8

% text italic
\font\eighteenit=cmti10 scaled\magstep3         % 17.28 pt
\font\fourteenit=cmti10 scaled\magstep2         % 14.4 pt
%\font\twelveit=cmti10 scaled \magstep1         % 12pt
\font\twelveit=cmti12                           % 12pt
\font\elevenit=cmti10 scaled \magstephalf       % 11pt (almost)
\font\tenit=cmti10
\font\nineit=cmti9
\font\eightit=cmti8

\message{more different fonts,}

\font\preloaded=cmmib10 % bold math italic
\font\preloaded=cmbsy10 % bold math symbols

%\font\preloaded=manfnt % METAFONT logo and dragon curve and special symbols

% Additional \preloaded fonts can be specified here.
% (And those that were \preloaded above can be eliminated.)

\let\preloaded=\undefined % preloaded fonts must be declared anew later.

\skewchar\eighteeni='177 \skewchar\fourteeni='177 \skewchar\twelvei='177
\skewchar\eleveni='177 \skewchar\teni='177 \skewchar\ninei='177
\skewchar\eighti='177 \skewchar\seveni='177 \skewchar\sixi='177
\skewchar\fivei='177
\skewchar\eighteensy='60 \skewchar\fourteensy='60 \skewchar\twelvesy='60
\skewchar\elevensy='60 \skewchar\tensy='60 \skewchar\ninesy='60
\skewchar\eightsy='60 \skewchar\sevensy='60 \skewchar\sixsy='60
\skewchar\fivesy='60

\let\usereighteenpointmacro=\relax
\def\eighteenpoint{\let\pointsize=\eighteenpoint
  \textfont0=\eighteenrm \scriptfont0=\twelverm \scriptscriptfont0=\ninerm
  \def\rm{\fam\z@\eighteenrm}%
  \textfont1=\eighteeni \scriptfont1=\twelvei \scriptscriptfont1=\ninei
  \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\eighteeni}%
  \textfont2=\eighteensy \scriptfont2=\twelvesy \scriptscriptfont2=\ninesy
  \def\cal{\fam\tw@}%
  \textfont3=\eighteenex \scriptfont3=\eighteenex \scriptscriptfont3=\eighteenex%NEW
  \textfont\itfam=\eighteenit
  \def\it{\fam\itfam\eighteenit}%
  \textfont\slfam=\eighteensl
  \def\sl{\fam\slfam\eighteensl}%
  \textfont\bffam=\eighteenbf \scriptfont\bffam=\twelvebf 
  \scriptscriptfont\bffam=\ninebf
  \def\bf{\fam\bffam\eighteenbf}%
  \textfont\ttfam=\eighteentt
  \def\tt{\fam\ttfam\eighteentt}%
  \def\big##1{{\hbox{$\left##1\vbox to15.3\p@{}\right.\n@space$}}}%NEW
  \def\Big##1{{\hbox{$\left##1\vbox to20.7\p@{}\right.\n@space$}}}%NEW
  \def\bigg##1{{\hbox{$\left##1\vbox to26.1\p@{}\right.\n@space$}}}%NEW
  \def\Bigg##1{{\hbox{$\left##1\vbox to31.5\p@{}\right.\n@space$}}}%NEW
  \setnormalsp@cing
  \usereighteenpointmacro
  }

\let\usersixteenpointmacro=\relax
\def\sixteenpoint{%
  \message{You have asked for 16pt, but you are getting 14pt fonts.
           There are no 16pt CM fonts in the local font library.}%
  \fourteenpoint \let\pointsize=\sixteenpoint
  \usersixteenpointmacro
  }

\let\userfourteenpointmacro=\relax
\def\fourteenpoint{\let\pointsize=\fourteenpoint
  \textfont0=\fourteenrm \scriptfont0=\tenrm \scriptscriptfont0=\sevenrm
  \def\rm{\fam\z@\fourteenrm}%
  \textfont1=\fourteeni \scriptfont1=\teni \scriptscriptfont1=\seveni
  \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\fourteeni}%
  \textfont2=\fourteensy \scriptfont2=\tensy \scriptscriptfont2=\sevensy
  \def\cal{\fam\tw@}%
  \textfont3=\fourteenex \scriptfont3=\fourteenex \scriptscriptfont3=\fourteenex%NEW
  \textfont\itfam=\fourteenit
  \def\it{\fam\itfam\fourteenit}%
  \textfont\slfam=\fourteensl
  \def\sl{\fam\slfam\fourteensl}%
  \textfont\bffam=\fourteenbf \scriptfont\bffam=\tenbf 
  \scriptscriptfont\bffam=\sixbf
  \def\bf{\fam\bffam\fourteenbf}%
  \textfont\ttfam=\fourteentt
  \def\tt{\fam\ttfam\fourteentt}%
  \def\big##1{{\hbox{$\left##1\vbox to11.9\p@{}\right.\n@space$}}}%NEW
  \def\Big##1{{\hbox{$\left##1\vbox to16.1\p@{}\right.\n@space$}}}%NEW
  \def\bigg##1{{\hbox{$\left##1\vbox to20.3\p@{}\right.\n@space$}}}%NEW
  \def\Bigg##1{{\hbox{$\left##1\vbox to24.5\p@{}\right.\n@space$}}}%NEW
  \setnormalsp@cing
  \userfourteenpointmacro
  }

\let\usertwelvepointmacro=\relax
\def\twelvepoint{\let\pointsize=\twelvepoint
  \textfont0=\twelverm \scriptfont0=\ninerm \scriptscriptfont0=\sixrm
  \def\rm{\fam\z@\twelverm}%
  \textfont1=\twelvei \scriptfont1=\ninei \scriptscriptfont1=\sixi
  \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\twelvei}%
  \textfont2=\twelvesy \scriptfont2=\ninesy \scriptscriptfont2=\sixsy
  \def\cal{\fam\tw@}%
  \textfont3=\twelveex \scriptfont3=\twelveex \scriptscriptfont3=\twelveex%NEW
  \textfont\itfam=\twelveit
  \def\it{\fam\itfam\twelveit}%
  \textfont\slfam=\twelvesl
  \def\sl{\fam\slfam\twelvesl}%
  \textfont\bffam=\twelvebf \scriptfont\bffam=\ninebf
  \scriptscriptfont\bffam=\sixbf
  \def\bf{\fam\bffam\twelvebf}%
  \textfont\ttfam=\twelvett
  \def\tt{\fam\ttfam\twelvett}%
  \def\big##1{{\hbox{$\left##1\vbox to10.2\p@{}\right.\n@space$}}}%NEW
  \def\Big##1{{\hbox{$\left##1\vbox to13.8\p@{}\right.\n@space$}}}%NEW
  \def\bigg##1{{\hbox{$\left##1\vbox to17.4\p@{}\right.\n@space$}}}%NEW
  \def\Bigg##1{{\hbox{$\left##1\vbox to21\p@{}\right.\n@space$}}}%NEW
  \setnormalsp@cing
  \usertwelvepointmacro
  }

\let\userelevenpointmacro=\relax
\def\elevenpoint{\let\pointsize=\elevenpoint
  \textfont0=\elevenrm \scriptfont0=\eightrm \scriptscriptfont0=\fiverm
  \def\rm{\fam\z@\elevenrm}%
  \textfont1=\eleveni \scriptfont1=\eighti \scriptscriptfont1=\fivei
  \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\eleveni}%
  \textfont2=\elevensy \scriptfont2=\eightsy \scriptscriptfont2=\fivesy
  \def\cal{\fam\tw@}%
  \textfont3=\elevenex \scriptfont3=\elevenex \scriptscriptfont3=\elevenex%NEW
  \textfont\itfam=\elevenit
  \def\it{\fam\itfam\elevenit}%
  \textfont\slfam=\elevensl
  \def\sl{\fam\slfam\elevensl}%
  \textfont\bffam=\elevenbf \scriptfont\bffam=\eightbf 
  \scriptscriptfont\bffam=\fivebf
  \def\bf{\fam\bffam\elevenbf}%
  \textfont\ttfam=\eleventt
  \def\tt{\fam\ttfam\eleventt}%
  \def\big##1{{\hbox{$\left##1\vbox to9.3\p@{}\right.\n@space$}}}%NEW
  \def\Big##1{{\hbox{$\left##1\vbox to12.6\p@{}\right.\n@space$}}}%NEW
  \def\bigg##1{{\hbox{$\left##1\vbox to16\p@{}\right.\n@space$}}}%NEW
  \def\Bigg##1{{\hbox{$\left##1\vbox to19.2\p@{}\right.\n@space$}}}%NEW
  \setnormalsp@cing
  \userelevenpointmacro
  }

\let\usertenpointmacro=\relax
\def\tenpoint{\let\pointsize=\tenpoint
  \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
  \def\rm{\fam\z@\tenrm}%
  \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
  \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\teni}%
  \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
  \def\cal{\fam\tw@}%
  \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
  \textfont\itfam=\tenit
  \def\it{\fam\itfam\tenit}%
  \textfont\slfam=\tensl
  \def\sl{\fam\slfam\tensl}%
  \textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf
  \scriptscriptfont\bffam=\fivebf
  \def\bf{\fam\bffam\tenbf}%
  \textfont\ttfam=\tentt
  \def\tt{\fam\ttfam\tentt}%
  \def\big##1{{\hbox{$\left##1\vbox to8.5\p@{}\right.\n@space$}}}%NEW
  \def\Big##1{{\hbox{$\left##1\vbox to11.5\p@{}\right.\n@space$}}}%NEW
  \def\bigg##1{{\hbox{$\left##1\vbox to14.5\p@{}\right.\n@space$}}}%NEW
  \def\Bigg##1{{\hbox{$\left##1\vbox to17.5\p@{}\right.\n@space$}}}%NEW
  \setnormalsp@cing
  \usertenpointmacro
  }

\let\userninepointmacro=\relax
\def\ninepoint{\let\pointsize=\ninepoint
  \textfont0=\ninerm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
  \def\rm{\fam\z@\ninerm}%
  \textfont1=\ninei \scriptfont1=\seveni \scriptscriptfont1=\fivei
  \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\ninei}%
  \textfont2=\ninesy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
  \def\cal{\fam\tw@}%
  \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
  \textfont\itfam=\nineit
  \def\it{\fam\itfam\nineit}%
  \textfont\slfam=\ninesl
  \def\sl{\fam\slfam\ninesl}%
  \textfont\bffam=\ninebf \scriptfont\bffam=\sevenbf 
  \scriptscriptfont\bffam=\fivebf
  \def\bf{\fam\bffam\ninebf}%
  \textfont\ttfam=\ninett
  \def\tt{\fam\ttfam\ninett}%
  \def\big##1{{\hbox{$\left##1\vbox to8.5\p@{}\right.\n@space$}}}%NEW
  \def\Big##1{{\hbox{$\left##1\vbox to11.5\p@{}\right.\n@space$}}}%NEW
  \def\bigg##1{{\hbox{$\left##1\vbox to14.5\p@{}\right.\n@space$}}}%NEW
  \def\Bigg##1{{\hbox{$\left##1\vbox to17.5\p@{}\right.\n@space$}}}%NEW
  \setnormalsp@cing
  \userninepointmacro
  }

\let\usereightpointmacro=\relax
\def\eightpoint{\let\pointsize=\eightpoint
  \textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
  \def\rm{\fam\z@\eightrm}%
  \textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei
  \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\eighti}%
  \textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
  \def\cal{\fam\tw@}%
  \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
  \textfont\itfam=\eightit
  \def\it{\fam\itfam\eightit}%
  \textfont\slfam=\eightsl
  \def\sl{\fam\slfam\eightsl}%
  \textfont\bffam=\eightbf \scriptfont\bffam=\sixbf 
  \scriptscriptfont\bffam=\fivebf
  \def\bf{\fam\bffam\eightbf}%
  \textfont\ttfam=\eighttt
  \def\tt{\fam\ttfam\eighttt}%
  \def\big##1{{\hbox{$\left##1\vbox to8.5\p@{}\right.\n@space$}}}%NEW
  \def\Big##1{{\hbox{$\left##1\vbox to11.5\p@{}\right.\n@space$}}}%NEW
  \def\bigg##1{{\hbox{$\left##1\vbox to14.5\p@{}\right.\n@space$}}}%NEW
  \def\Bigg##1{{\hbox{$\left##1\vbox to17.5\p@{}\right.\n@space$}}}%NEW
  \setnormalsp@cing
  \usereightpointmacro
  }

%% NOTE: had to stick 10 point definitions of \big in 8, 9, and 10 point.

\newtoks\baselinefactor  \baselinefactor={1.2}
\def\setnormalbaselines {%
  \normalbaselineskip=\the\baselinefactor em\relax
%  \normallineskip=\p@                % these don't change with point size
%  \normallineskiplimit=0\p@
  }

\def\setnormalsp@cing{%  SIDE EFFECT is to go into \rm
  \rm   % set the em properly
  \setnormalbaselines
  \normalbaselines
  \abovedisplayskip=1.2em plus .3em minus .9em%
  \abovedisplayshortskip=0em plus .3em%
  \belowdisplayskip=1.2em plus .3em minus .9em%
  \belowdisplayshortskip=.7em plus .3em minus .4em%
  \setbox\strutbox=\hbox{\vrule height .7\baselineskip
                                depth .3\baselineskip width\z@}%
  }

\message{format id.}

\catcode`@=12 % at signs are no longer letters

\edef\fmtname{\fmtname-augmented}       % include Plain name
\edef\fmtversion{\fmtversion-CM861707}  % include Plain version