summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/plain/mnras/mn.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/plain/mnras/mn.tex')
-rw-r--r--Master/texmf-dist/tex/plain/mnras/mn.tex3034
1 files changed, 3034 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/plain/mnras/mn.tex b/Master/texmf-dist/tex/plain/mnras/mn.tex
new file mode 100644
index 00000000000..cf6b0cbedcd
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/mnras/mn.tex
@@ -0,0 +1,3034 @@
+% MN.TEX (Computer Modern version)
+%
+% plain TeX single / double column macros for the
+% Monthly Notices of Royal Astronomical Society
+%
+% v1.5 (mn.tex) --- released 25th August 1994 (M. Reed)
+% v1.4 " --- released 22nd February 1994
+% v1.3 (mnd.tex) --- released 28th November 1992
+% v1.26 " --- released 1st August 1992
+% v1.25 " --- released 25th February 1992
+%
+% Copyright Cambridge University Press
+%
+% > Incorporating special symbol code from laa.sty v1.1 (25th Feb 1991)
+% used with the permission of Springer Verlag.
+% > Incorporating parts of mssymb.tex (8th July 1987).
+% > Incorporating NewFont.sty v ALPHA patchlevel 8 (16th August 1994).
+
+\catcode `\@=11 % @ signs are letters
+
+\def\@version{1.5}
+\def\@verdate{25th Aug 1994}
+
+
+% Fonts: Computer Modern / Monotype Times (CUP only)
+%
+% Font family sizes available:
+% 8pt, 9pt, 10pt, 11pt, 14pt and 17pt.
+%
+% Faces available:
+% \rm, math italic, symbol, \it, \bf, \sl, \tt, \sc, \sf, \cal, \em,
+% \mit and \oldstyle.
+
+% define the typeface in use
+
+\newif\ifprod@font
+
+\ifx\@typeface\undefined
+ \def\@typeface{Comp. Modern}\prod@fontfalse
+\else
+ \prod@fonttrue % We want Times
+\fi
+
+\def\newfam{\alloc@8\fam\chardef\sixt@@n} % made not outer
+
+\ifprod@font
+%
+\font\fiverm=mtr10 at 5pt
+\font\fivebf=mtbx10 at 5pt
+\font\fiveit=mtti10 at 5pt
+\font\fivesl=mtsl10 at 5pt
+\font\fivett=cmtt8 at 5pt \hyphenchar\fivett=-1
+\font\fivecsc=mtcsc10 at 5pt
+\font\fivesf=mtss10 at 5pt
+\font\fivei=mtmi10 at 5pt \skewchar\fivei='177
+\font\fivesy=mtsy10 at 5pt \skewchar\fivesy='60
+
+\font\sixrm=mtr10 at 6pt
+\font\sixbf=mtbx10 at 6pt
+\font\sixit=mtti10 at 6pt
+\font\sixsl=mtsl10 at 6pt
+\font\sixtt=cmtt8 at 6pt \hyphenchar\sixtt=-1
+\font\sixcsc=mtcsc10 at 6pt
+\font\sixsf=mtss10 at 6pt
+\font\sixi=mtmi10 at 6pt \skewchar\sixi='177
+\font\sixsy=mtsy10 at 6pt \skewchar\sixsy='60
+
+\font\sevenrm=mtr10 at 7pt
+\font\sevenbf=mtbx10 at 7pt
+\font\sevenit=mtti10 at 7pt
+\font\sevensl=mtsl10 at 7pt
+\font\seventt=cmtt8 at 7pt \hyphenchar\seventt=-1
+\font\sevencsc=mtcsc10 at 7pt
+\font\sevensf=mtss10 at 7pt
+\font\seveni=mtmi10 at 7pt \skewchar\seveni='177
+\font\sevensy=mtsy10 at 7pt \skewchar\sevensy='60
+
+\font\eightrm=mtr10 at 8pt
+\font\eightbf=mtbx10 at 8pt
+\font\eightit=mtti10 at 8pt
+\font\eighti=mtmi10 at 8pt \skewchar\eighti='177
+\font\eightsy=mtsy10 at 8pt \skewchar\eightsy='60
+\font\eightsl=mtsl10 at 8pt
+\font\eighttt=cmtt8 \hyphenchar\eighttt=-1
+\font\eightcsc=mtcsc10 at 8pt
+\font\eightsf=mtss10 at 8pt
+
+\font\ninerm=mtr10 at 9pt
+\font\ninebf=mtbx10 at 9pt
+\font\nineit=mtti10 at 9pt
+\font\ninei=mtmi10 at 9pt \skewchar\ninei='177
+\font\ninesy=mtsy10 at 9pt \skewchar\ninesy='60
+\font\ninesl=mtsl10 at 9pt
+\font\ninett=cmtt9 \hyphenchar\ninett=-1
+\font\ninecsc=mtcsc10 at 9pt
+\font\ninesf=mtss10 at 9pt
+
+\font\tenrm=mtr10
+\font\tenbf=mtbx10
+\font\tenit=mtti10
+\font\teni=mtmi10 \skewchar\teni='177
+\font\tensy=mtsy10 \skewchar\tensy='60
+\font\tenex=cmex10
+\font\tensl=mtsl10
+\font\tentt=cmtt10 \hyphenchar\tentt=-1
+\font\tencsc=mtcsc10
+\font\tensf=mtss10
+
+\font\elevenrm=mtr10 at 11pt
+\font\elevenbf=mtbx10 at 11pt
+\font\elevenit=mtti10 at 11pt
+\font\eleveni=mtmi10 at 11pt \skewchar\eleveni='177
+\font\elevensy=mtsy10 at 11pt \skewchar\elevensy='60
+\font\elevensl=mtsl10 at 11pt
+\font\eleventt=cmtt10 at 11pt \hyphenchar\eleventt=-1
+\font\elevencsc=mtcsc10 at 11pt
+\font\elevensf=mtss10 at 11pt
+
+\font\twelverm=mtr10 at 12pt
+\font\twelvebf=mtbx10 at 12pt
+\font\twelveit=mtti10 at 12pt
+\font\twelvesl=mtsl10 at 12pt
+\font\twelvett=cmtt12 \hyphenchar\twelvett=-1
+\font\twelvecsc=mtcsc10 at 12pt
+\font\twelvesf=mtss10 at 12pt
+\font\twelvei=mtmi10 at 12pt \skewchar\twelvei='177
+\font\twelvesy=mtsy10 at 12pt \skewchar\twelvesy='60
+
+\font\fourteenrm=mtr10 at 14pt
+\font\fourteenbf=mtbx10 at 14pt
+\font\fourteenit=mtti10 at 14pt
+\font\fourteeni=mtmi10 at 14pt \skewchar\fourteeni='177
+\font\fourteensy=mtsy10 at 14pt \skewchar\fourteensy='60
+\font\fourteensl=mtsl10 at 14pt
+\font\fourteentt=cmtt12 at 14pt \hyphenchar\fourteentt=-1
+\font\fourteencsc=mtcsc10 at 14pt
+\font\fourteensf=mtss10 at 14pt
+
+\font\seventeenrm=mtr10 at 17pt
+\font\seventeenbf=mtbx10 at 17pt
+\font\seventeenit=mtti10 at 17pt
+\font\seventeeni=mtmi10 at 17pt \skewchar\seventeeni='177
+\font\seventeensy=mtsy10 at 17pt \skewchar\seventeensy='60
+\font\seventeensl=mtsl10 at 17pt
+\font\seventeentt=cmtt12 at 17pt \hyphenchar\seventeentt=-1
+\font\seventeencsc=mtcsc10 at 17pt
+\font\seventeensf=mtss10 at 17pt
+%
+\else
+%
+\font\fiverm=cmr5
+\font\fivei=cmmi5 \skewchar\fivei='177
+\font\fivesy=cmsy5 \skewchar\fivesy='60
+\font\fivebf=cmbx5
+
+\font\sixrm=cmr6
+\font\sixi=cmmi6 \skewchar\sixi='177
+\font\sixsy=cmsy6 \skewchar\sixsy='60
+\font\sixbf=cmbx6
+
+\font\sevenrm=cmr7
+\font\sevenit=cmti7
+\font\seveni=cmmi7 \skewchar\seveni='177
+\font\sevensy=cmsy7 \skewchar\sevensy='60
+\font\sevenbf=cmbx7
+
+\font\eightrm=cmr8
+\font\eightbf=cmbx8
+\font\eightit=cmti8
+\font\eighti=cmmi8 \skewchar\eighti='177
+\font\eightsy=cmsy8 \skewchar\eightsy='60
+\font\eightsl=cmsl8
+\font\eighttt=cmtt8 \hyphenchar\eighttt=-1
+\font\eightcsc=cmcsc10 at 8pt
+\font\eightsf=cmss8
+
+\font\ninerm=cmr9
+\font\ninebf=cmbx9
+\font\nineit=cmti9
+\font\ninei=cmmi9 \skewchar\ninei='177
+\font\ninesy=cmsy9 \skewchar\ninesy='60
+\font\ninesl=cmsl9
+\font\ninett=cmtt9 \hyphenchar\ninett=-1
+\font\ninecsc=cmcsc10 at 9pt
+\font\ninesf=cmss9
+
+\font\tenrm=cmr10
+\font\tenbf=cmbx10
+\font\tenit=cmti10
+\font\teni=cmmi10 \skewchar\teni='177
+\font\tensy=cmsy10 \skewchar\tensy='60
+\font\tenex=cmex10
+\font\tensl=cmsl10
+\font\tentt=cmtt10 \hyphenchar\tentt=-1
+\font\tencsc=cmcsc10
+\font\tensf=cmss10
+
+\font\elevenrm=cmr10 scaled \magstephalf
+\font\elevenbf=cmbx10 scaled \magstephalf
+\font\elevenit=cmti10 scaled \magstephalf
+\font\eleveni=cmmi10 scaled \magstephalf \skewchar\eleveni='177
+\font\elevensy=cmsy10 scaled \magstephalf \skewchar\elevensy='60
+\font\elevensl=cmsl10 scaled \magstephalf
+\font\eleventt=cmtt10 scaled \magstephalf \hyphenchar\eleventt=-1
+\font\elevencsc=cmcsc10 scaled \magstephalf
+\font\elevensf=cmss10 scaled \magstephalf
+
+\font\twelverm=cmr10 scaled \magstep1
+\font\twelvebf=cmbx10 scaled \magstep1
+\font\twelvei=cmmi10 scaled \magstep1 \skewchar\twelvei='177
+\font\twelvesy=cmsy10 scaled \magstep1 \skewchar\twelvesy='60
+
+\font\fourteenrm=cmr10 scaled \magstep2
+\font\fourteenbf=cmbx10 scaled \magstep2
+\font\fourteenit=cmti10 scaled \magstep2
+\font\fourteeni=cmmi10 scaled \magstep2 \skewchar\fourteeni='177
+\font\fourteensy=cmsy10 scaled \magstep2 \skewchar\fourteensy='60
+\font\fourteensl=cmsl10 scaled \magstep2
+\font\fourteentt=cmtt10 scaled \magstep2 \hyphenchar\fourteentt=-1
+\font\fourteencsc=cmcsc10 scaled \magstep2
+\font\fourteensf=cmss10 scaled \magstep2
+
+\font\seventeenrm=cmr10 scaled \magstep3
+\font\seventeenbf=cmbx10 scaled \magstep3
+\font\seventeenit=cmti10 scaled \magstep3
+\font\seventeeni=cmmi10 scaled \magstep3 \skewchar\seventeeni='177
+\font\seventeensy=cmsy10 scaled \magstep3 \skewchar\seventeensy='60
+\font\seventeensl=cmsl10 scaled \magstep3
+\font\seventeentt=cmtt10 scaled \magstep3 \hyphenchar\seventeentt=-1
+\font\seventeencsc=cmcsc10 scaled \magstep3
+\font\seventeensf=cmss10 scaled \magstep3
+%
+\fi
+
+\def\hexnumber#1{\ifcase#1 0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or
+ A\or B\or C\or D\or E\or F\fi}
+
+\def\makestrut{%
+ \setbox\strutbox=\hbox{%
+ \vrule height.7\baselineskip depth.3\baselineskip width \z@}%
+}
+
+\def\baselinestretch{1}
+\newskip\tmp@bls
+
+\def\b@ls#1{% set baseline using \baselinestretch as a scale factor
+ \tmp@bls=#1\relax
+ \baselineskip=#1\relax\makestrut
+ \normalbaselineskip=\baselinestretch\tmp@bls
+ \normalbaselines
+}
+
+\def\nostb@ls#1{% set baseline skip ignoring \baselinestretch
+ \normalbaselineskip=#1\relax
+ \normalbaselines
+ \makestrut
+}
+
+
+% families \itfam, \slfam, \bffam, \ttfam defined in PLAIN.
+%
+% \itfam is \fam4
+% \slfam is \fam5
+% \bffam is \fam6
+% \ttfam is \fam7
+
+\newfam\scfam % \fam8
+\newfam\sffam % \fam9
+
+\def\mit{\fam\@ne}
+\def\cal{\fam\tw@}
+\def\em{\ifdim\fontdimen1\font>\z@ \rm\else\it\fi}
+
+\textfont3=\tenex
+\scriptfont3=\tenex
+\scriptscriptfont3=\tenex
+
+\setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left (
+
+\def\eightpoint{% 8^6^5 on 10pt
+ \def\rm{\fam0\eightrm}%
+ \textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm%
+ \textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei%
+ \textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy%
+ \textfont\itfam=\eightit\def\it{\fam\itfam\eightit}%
+ \ifprod@font
+ \scriptfont\itfam=\sixit
+ \scriptscriptfont\itfam=\fiveit
+ \else
+ \scriptfont\itfam=\eightit
+ \scriptscriptfont\itfam=\eightit
+ \fi
+ \textfont\bffam=\eightbf%
+ \scriptfont\bffam=\sixbf%
+ \scriptscriptfont\bffam=\fivebf%
+ \def\bf{\fam\bffam\eightbf}%
+ \textfont\slfam=\eightsl\def\sl{\fam\slfam\eightsl}%
+ \ifprod@font
+ \scriptfont\slfam=\sixsl
+ \scriptscriptfont\slfam=\fivesl
+ \else
+ \scriptfont\slfam=\eightsl
+ \scriptscriptfont\slfam=\eightsl
+ \fi
+ \textfont\ttfam=\eighttt\def\tt{\fam\ttfam\eighttt}%
+ \ifprod@font
+ \scriptfont\ttfam=\sixtt
+ \scriptscriptfont\ttfam=\fivett
+ \else
+ \scriptfont\ttfam=\eighttt
+ \scriptscriptfont\ttfam=\eighttt
+ \fi
+ \textfont\scfam=\eightcsc\def\sc{\fam\scfam\eightcsc}%
+ \ifprod@font
+ \scriptfont\scfam=\sixcsc
+ \scriptscriptfont\scfam=\fivecsc
+ \else
+ \scriptfont\scfam=\eightcsc
+ \scriptscriptfont\scfam=\eightcsc
+ \fi
+ \textfont\sffam=\eightsf\def\sf{\fam\sffam\eightsf}%
+ \ifprod@font
+ \scriptfont\sffam=\sixsf
+ \scriptscriptfont\sffam=\fivesf
+ \else
+ \scriptfont\sffam=\eightsf
+ \scriptscriptfont\sffam=\eightsf
+ \fi
+ \def\oldstyle{\fam\@ne\eighti}%
+ \b@ls{10pt}\rm\@viiipt%
+}
+\def\@viiipt{}
+
+\def\ninepoint{% 9^6^5 on 11pt (two col) / 12 (single col)
+ \def\rm{\fam0\ninerm}%
+ \textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm%
+ \textfont1=\ninei \scriptfont1=\sixi \scriptscriptfont1=\fivei%
+ \textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy%
+ \textfont\itfam=\nineit\def\it{\fam\itfam\nineit}%
+ \ifprod@font
+ \scriptfont\itfam=\sixit
+ \scriptscriptfont\itfam=\fiveit
+ \else
+ \scriptfont\itfam=\nineit
+ \scriptscriptfont\itfam=\nineit
+ \fi
+ \textfont\bffam=\ninebf%
+ \scriptfont\bffam=\sixbf%
+ \scriptscriptfont\bffam=\fivebf%
+ \def\bf{\fam\bffam\ninebf}%
+ \textfont\slfam=\ninesl\def\sl{\fam\slfam\ninesl}%
+ \ifprod@font
+ \scriptfont\slfam=\sixsl
+ \scriptscriptfont\slfam=\fivesl
+ \else
+ \scriptfont\slfam=\ninesl
+ \scriptscriptfont\slfam=\ninesl
+ \fi
+ \textfont\ttfam=\ninett\def\tt{\fam\ttfam\ninett}%
+ \ifprod@font
+ \scriptfont\ttfam=\sixtt
+ \scriptscriptfont\ttfam=\fivett
+ \else
+ \scriptfont\ttfam=\ninett
+ \scriptscriptfont\ttfam=\ninett
+ \fi
+ \textfont\scfam=\ninecsc\def\sc{\fam\scfam\ninecsc}%
+ \ifprod@font
+ \scriptfont\scfam=\sixcsc
+ \scriptscriptfont\scfam=\fivecsc
+ \else
+ \scriptfont\scfam=\ninecsc
+ \scriptscriptfont\scfam=\ninecsc
+ \fi
+ \textfont\sffam=\ninesf\def\sf{\fam\sffam\ninesf}%
+ \ifprod@font
+ \scriptfont\sffam=\sixsf
+ \scriptscriptfont\sffam=\fivesf
+ \else
+ \scriptfont\sffam=\ninesf
+ \scriptscriptfont\sffam=\ninesf
+ \fi
+ \def\oldstyle{\fam\@ne\ninei}%
+ \b@ls{\TextLeading plus \Feathering}\rm\@ixpt%
+}
+\def\@ixpt{}
+
+\def\tenpoint{% 10^7^5 on 11pt
+ \def\rm{\fam0\tenrm}%
+ \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm%
+ \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei%
+ \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy%
+ \textfont\itfam=\tenit\def\it{\fam\itfam\tenit}%
+ \ifprod@font
+ \scriptfont\itfam=\sevenit
+ \scriptscriptfont\itfam=\fiveit
+ \else
+ \scriptfont\itfam=\tenit
+ \scriptscriptfont\itfam=\tenit
+ \fi
+ \textfont\bffam=\tenbf%
+ \scriptfont\bffam=\sevenbf%
+ \scriptscriptfont\bffam=\fivebf%
+ \def\bf{\fam\bffam\tenbf}%
+ \textfont\slfam=\tensl\def\sl{\fam\slfam\tensl}%
+ \ifprod@font
+ \scriptfont\slfam=\sevensl
+ \scriptscriptfont\slfam=\fivesl
+ \else
+ \scriptfont\slfam=\tensl
+ \scriptscriptfont\slfam=\tensl
+ \fi
+ \textfont\ttfam=\tentt\def\tt{\fam\ttfam\tentt}%
+ \ifprod@font
+ \scriptfont\ttfam=\seventt
+ \scriptscriptfont\ttfam=\fivett
+ \else
+ \scriptfont\ttfam=\tentt
+ \scriptscriptfont\ttfam=\tentt
+ \fi
+ \textfont\scfam=\tencsc\def\sc{\fam\scfam\tencsc}%
+ \ifprod@font
+ \scriptfont\scfam=\sevencsc
+ \scriptscriptfont\scfam=\fivecsc
+ \else
+ \scriptfont\scfam=\tencsc
+ \scriptscriptfont\scfam=\tencsc
+ \fi
+ \textfont\sffam=\tensf\def\sf{\fam\sffam\tensf}%
+ \ifprod@font
+ \scriptfont\sffam=\sevensf
+ \scriptscriptfont\sffam=\fivesf
+ \else
+ \scriptfont\sffam=\tensf
+ \scriptscriptfont\sffam=\tensf
+ \fi
+ \def\oldstyle{\fam\@ne\teni}%
+ \b@ls{11pt}\rm\@xpt%
+}
+\def\@xpt{}
+
+\def\elevenpoint{% 11^8^6 on 13pt
+ \def\rm{\fam0\elevenrm}%
+ \textfont0=\elevenrm \scriptfont0=\eightrm \scriptscriptfont0=\sixrm%
+ \textfont1=\eleveni \scriptfont1=\eighti \scriptscriptfont1=\sixi%
+ \textfont2=\elevensy \scriptfont2=\eightsy \scriptscriptfont2=\sixsy%
+ \textfont\itfam=\elevenit\def\it{\fam\itfam\elevenit}%
+ \ifprod@font
+ \scriptfont\itfam=\eightit
+ \scriptscriptfont\itfam=\sixit
+ \else
+ \scriptfont\itfam=\elevenit
+ \scriptscriptfont\itfam=\elevenit
+ \fi
+ \textfont\bffam=\elevenbf%
+ \scriptfont\bffam=\eightbf%
+ \scriptscriptfont\bffam=\sixbf%
+ \def\bf{\fam\bffam\elevenbf}%
+ \textfont\slfam=\elevensl\def\sl{\fam\slfam\elevensl}%
+ \ifprod@font
+ \scriptfont\slfam=\eightsl
+ \scriptscriptfont\slfam=\sixsl
+ \else
+ \scriptfont\slfam=\elevensl
+ \scriptscriptfont\slfam=\elevensl
+ \fi
+ \textfont\ttfam=\eleventt\def\tt{\fam\ttfam\eleventt}%
+ \ifprod@font
+ \scriptfont\ttfam=\eighttt
+ \scriptscriptfont\ttfam=\sixtt
+ \else
+ \scriptfont\ttfam=\eleventt
+ \scriptscriptfont\ttfam=\eleventt
+ \fi
+ \textfont\scfam=\elevencsc\def\sc{\fam\scfam\elevencsc}%
+ \ifprod@font
+ \scriptfont\scfam=\eightcsc
+ \scriptscriptfont\scfam=\sixcsc
+ \else
+ \scriptfont\scfam=\elevencsc
+ \scriptscriptfont\scfam=\elevencsc
+ \fi
+ \textfont\sffam=\elevensf\def\sf{\fam\sffam\elevensf}%
+ \ifprod@font
+ \scriptfont\sffam=\eightsf
+ \scriptscriptfont\sffam=\sixsf
+ \else
+ \scriptfont\sffam=\elevensf
+ \scriptscriptfont\sffam=\elevensf
+ \fi
+ \def\oldstyle{\fam\@ne\eleveni}%
+ \b@ls{13pt}\rm\@xipt%
+}
+\def\@xipt{}
+
+\def\fourteenpoint{% 14^10^7 on 17pt
+ \def\rm{\fam0\fourteenrm}%
+ \textfont0\fourteenrm \scriptfont0\tenrm \scriptscriptfont0\sevenrm%
+ \textfont1\fourteeni \scriptfont1\teni \scriptscriptfont1\seveni%
+ \textfont2\fourteensy \scriptfont2\tensy \scriptscriptfont2\sevensy%
+ \textfont\itfam=\fourteenit\def\it{\fam\itfam\fourteenit}%
+ \ifprod@font
+ \scriptfont\itfam=\tenit
+ \scriptscriptfont\itfam=\sevenit
+ \else
+ \scriptfont\itfam=\fourteenit
+ \scriptscriptfont\itfam=\fourteenit
+ \fi
+ \textfont\bffam=\fourteenbf%
+ \scriptfont\bffam=\tenbf%
+ \scriptscriptfont\bffam=\sevenbf%
+ \def\bf{\fam\bffam\fourteenbf}%
+ \textfont\slfam=\fourteensl\def\sl{\fam\slfam\fourteensl}%
+ \ifprod@font
+ \scriptfont\slfam=\tensl
+ \scriptscriptfont\slfam=\sevensl
+ \else
+ \scriptfont\slfam=\fourteensl
+ \scriptscriptfont\slfam=\fourteensl
+ \fi
+ \textfont\ttfam=\fourteentt\def\tt{\fam\ttfam\fourteentt}%
+ \ifprod@font
+ \scriptfont\ttfam=\tentt
+ \scriptscriptfont\ttfam=\seventt
+ \else
+ \scriptfont\ttfam=\fourteentt
+ \scriptscriptfont\ttfam=\fourteentt
+ \fi
+ \textfont\scfam=\fourteencsc\def\sc{\fam\scfam\fourteencsc}%
+ \ifprod@font
+ \scriptfont\scfam=\tencsc
+ \scriptscriptfont\scfam=\sevencsc
+ \else
+ \scriptfont\scfam=\fourteencsc
+ \scriptscriptfont\scfam=\fourteencsc
+ \fi
+ \textfont\sffam=\fourteensf\def\sf{\fam\sffam\fourteensf}%
+ \ifprod@font
+ \scriptfont\sffam=\tensf
+ \scriptscriptfont\sffam=\sevensf
+ \else
+ \scriptfont\sffam=\fourteensf
+ \scriptscriptfont\sffam=\fourteensf
+ \fi
+ \def\oldstyle{\fam\@ne\fourteeni}%
+ \b@ls{17pt}\rm\@xivpt%
+}
+\def\@xivpt{}
+
+\def\seventeenpoint{% 17^12^10 on 20pt
+ \def\rm{\fam0\seventeenrm}%
+ \textfont0\seventeenrm \scriptfont0\twelverm \scriptscriptfont0\tenrm%
+ \textfont1\seventeeni \scriptfont1\twelvei \scriptscriptfont1\teni%
+ \textfont2\seventeensy \scriptfont2\twelvesy \scriptscriptfont2\tensy%
+ \textfont\itfam=\seventeenit\def\it{\fam\itfam\seventeenit}%
+ \ifprod@font
+ \scriptfont\itfam=\twelveit
+ \scriptscriptfont\itfam=\tenit
+ \else
+ \scriptfont\itfam=\seventeenit
+ \scriptscriptfont\itfam=\seventeenit
+ \fi
+ \textfont\bffam=\seventeenbf%
+ \scriptfont\bffam=\twelvebf%
+ \scriptscriptfont\bffam=\tenbf%
+ \def\bf{\fam\bffam\seventeenbf}%
+ \textfont\slfam=\seventeensl\def\sl{\fam\slfam\seventeensl}%
+ \ifprod@font
+ \scriptfont\slfam=\twelvesl
+ \scriptscriptfont\slfam=\tensl
+ \else
+ \scriptfont\slfam=\seventeensl
+ \scriptscriptfont\slfam=\seventeensl
+ \fi
+ \textfont\ttfam=\seventeentt\def\tt{\fam\ttfam\seventeentt}%
+ \ifprod@font
+ \scriptfont\ttfam=\twelvett
+ \scriptscriptfont\ttfam=\tentt
+ \else
+ \scriptfont\ttfam=\seventeentt
+ \scriptscriptfont\ttfam=\seventeentt
+ \fi
+ \textfont\scfam=\seventeencsc\def\sc{\fam\scfam\seventeencsc}%
+ \ifprod@font
+ \scriptfont\scfam=\twelvecsc
+ \scriptscriptfont\scfam=\tencsc
+ \else
+ \scriptfont\scfam=\seventeencsc
+ \scriptscriptfont\scfam=\seventeencsc
+ \fi
+ \textfont\sffam=\seventeensf\def\sf{\fam\sffam\seventeensf}%
+ \ifprod@font
+ \scriptfont\sffam=\twelvesf
+ \scriptscriptfont\sffam=\tensf
+ \else
+ \scriptfont\sffam=\seventeensf
+ \scriptscriptfont\sffam=\seventeensf
+ \fi
+ \def\oldstyle{\fam\@ne\seventeeni}%
+ \b@ls{20pt}\rm\@xviipt%
+}
+\def\@xviipt{}
+
+\lineskip=1pt \normallineskip=\lineskip
+\lineskiplimit=\z@ \normallineskiplimit=\lineskiplimit
+
+
+% BOLD MATH SYMBOLS
+
+\def\loadboldmathnames{%
+ \def\balpha{{\bmath{\alpha}}}%
+ \def\bbeta{{\bmath{\beta}}}%
+ \def\bgamma{{\bmath{\gamma}}}%
+ \def\bdelta{{\bmath{\delta}}}%
+ \def\bepsilon{{\bmath{\epsilon}}}%
+ \def\bzeta{{\bmath{\zeta}}}%
+ \def\boldeta{{\bmath{\eta}}}%
+ \def\btheta{{\bmath{\theta}}}%
+ \def\biota{{\bmath{\iota}}}%
+ \def\bkappa{{\bmath{\kappa}}}%
+ \def\blambda{{\bmath{\lambda}}}%
+ \def\bmu{{\bmath{\mu}}}%
+ \def\bnu{{\bmath{\nu}}}%
+ \def\bxi{{\bmath{\xi}}}%
+ \def\bpi{{\bmath{\pi}}}%
+ \def\brho{{\bmath{\rho}}}%
+ \def\bsigma{{\bmath{\sigma}}}%
+ \def\btau{{\bmath{\tau}}}%
+ \def\bupsilon{{\bmath{\upsilon}}}%
+ \def\bphi{{\bmath{\phi}}}%
+ \def\bchi{{\bmath{\chi}}}%
+ \def\bpsi{{\bmath{\psi}}}%
+ \def\bomega{{\bmath{\omega}}}%
+ \def\bvarepsilon{{\bmath{\varepsilon}}}%
+ \def\bvartheta{{\bmath{\vartheta}}}%
+ \def\bvarpi{{\bmath{\varpi}}}%
+ \def\bvarrho{{\bmath{\varrho}}}%
+ \def\bvarsigma{{\bmath{\varsigma}}}%
+ \def\bvarphi{{\bmath{\varphi}}}%
+ \def\baleph{{\bmath{\aleph}}}%
+ \def\bimath{{\bmath{\imath}}}%
+ \def\bjmath{{\bmath{\jmath}}}%
+ \def\bell{{\bmath{\ell}}}%
+ \def\bwp{{\bmath{\wp}}}%
+ \def\bRe{{\bmath{\Re}}}%
+ \def\bIm{{\bmath{\Im}}}%
+ \def\bpartial{{\bmath{\partial}}}%
+ \def\binfty{{\bmath{\infty}}}%
+ \def\bprime{{\bmath{\prime}}}%
+ \def\bemptyset{{\bmath{\emptyset}}}%
+ \def\bnabla{{\bmath{\nabla}}}%
+ \def\btop{{\bmath{\top}}}%
+ \def\bbot{{\bmath{\bot}}}%
+ \def\btriangle{{\bmath{\triangle}}}%
+ \def\bforall{{\bmath{\forall}}}%
+ \def\bexists{{\bmath{\exists}}}%
+ \def\bneg{{\bmath{\neg}}}%
+ \def\bflat{{\bmath{\flat}}}%
+ \def\bnatural{{\bmath{\natural}}}%
+ \def\bsharp{{\bmath{\sharp}}}%
+ \def\bclubsuit{{\bmath{\clubsuit}}}%
+ \def\bdiamondsuit{{\bmath{\diamondsuit}}}%
+ \def\bheartsuit{{\bmath{\heartsuit}}}%
+ \def\bspadesuit{{\bmath{\spadesuit}}}%
+ \def\bsmallint{{\bmath{\smallint}}}%
+ \def\btriangleleft{{\bmath{\triangleleft}}}%
+ \def\btriangleright{{\bmath{\triangleright}}}%
+ \def\bbigtriangleup{{\bmath{\bigtriangleup}}}%
+ \def\bbigtriangledown{{\bmath{\bigtriangledown}}}%
+ \def\bwedge{{\bmath{\wedge}}}%
+ \def\bvee{{\bmath{\vee}}}%
+ \def\bcap{{\bmath{\cap}}}%
+ \def\bcup{{\bmath{\cup}}}%
+ \def\bddagger{{\bmath{\ddagger}}}%
+ \def\bdagger{{\bmath{\dagger}}}%
+ \def\bsqcap{{\bmath{\sqcap}}}%
+ \def\bsqcup{{\bmath{\sqcup}}}%
+ \def\buplus{{\bmath{\uplus}}}%
+ \def\bamalg{{\bmath{\amalg}}}%
+ \def\bdiamond{{\bmath{\diamond}}}%
+ \def\bbullet{{\bmath{\bullet}}}%
+ \def\bwr{{\bmath{\wr}}}%
+ \def\bdiv{{\bmath{\div}}}%
+ \def\bodot{{\bmath{\odot}}}%
+ \def\boslash{{\bmath{\oslash}}}%
+ \def\botimes{{\bmath{\otimes}}}%
+ \def\bominus{{\bmath{\ominus}}}%
+ \def\boplus{{\bmath{\oplus}}}%
+ \def\bmp{{\bmath{\mp}}}%
+ \def\bpm{{\bmath{\pm}}}%
+ \def\bcirc{{\bmath{\circ}}}%
+ \def\bbigcirc{{\bmath{\bigcirc}}}%
+ \def\bsetminus{{\bmath{\setminus}}}%
+ \def\bcdot{{\bmath{\cdot}}}%
+ \def\bast{{\bmath{\ast}}}%
+ \def\btimes{{\bmath{\times}}}%
+ \def\bstar{{\bmath{\star}}}%
+ \def\bpropto{{\bmath{\propto}}}%
+ \def\bsqsubseteq{{\bmath{\sqsubseteq}}}%
+ \def\bsqsupseteq{{\bmath{\sqsupseteq}}}%
+ \def\bparallel{{\bmath{\parallel}}}%
+ \def\bmid{{\bmath{\mid}}}%
+ \def\bdashv{{\bmath{\dashv}}}%
+ \def\bvdash{{\bmath{\vdash}}}%
+ \def\bnearrow{{\bmath{\nearrow}}}%
+ \def\bsearrow{{\bmath{\searrow}}}%
+ \def\bnwarrow{{\bmath{\nwarrow}}}%
+ \def\bswarrow{{\bmath{\swarrow}}}%
+ \def\bLeftrightarrow{{\bmath{\Leftrightarrow}}}%
+ \def\bLeftarrow{{\bmath{\Leftarrow}}}%
+ \def\bRightarrow{{\bmath{\Rightarrow}}}%
+ \def\bleq{{\bmath{\leq}}}%
+ \def\bgeq{{\bmath{\geq}}}%
+ \def\bsucc{{\bmath{\succ}}}%
+ \def\bprec{{\bmath{\prec}}}%
+ \def\bapprox{{\bmath{\approx}}}%
+ \def\bsucceq{{\bmath{\succeq}}}%
+ \def\bpreceq{{\bmath{\preceq}}}%
+ \def\bsupset{{\bmath{\supset}}}%
+ \def\bsubset{{\bmath{\subset}}}%
+ \def\bsupseteq{{\bmath{\supseteq}}}%
+ \def\bsubseteq{{\bmath{\subseteq}}}%
+ \def\bin{{\bmath{\in}}}%
+ \def\bni{{\bmath{\ni}}}%
+ \def\bgg{{\bmath{\gg}}}%
+ \def\bll{{\bmath{\ll}}}%
+ \def\bnot{{\bmath{\not}}}%
+ \def\bleftrightarrow{{\bmath{\leftrightarrow}}}%
+ \def\bleftarrow{{\bmath{\leftarrow}}}%
+ \def\brightarrow{{\bmath{\rightarrow}}}%
+ \def\bmapstochar{{\bmath{\mapstochar}}}%
+ \def\bsim{{\bmath{\sim}}}%
+ \def\bsimeq{{\bmath{\simeq}}}%
+ \def\bperp{{\bmath{\perp}}}%
+ \def\bequiv{{\bmath{\equiv}}}%
+ \def\basymp{{\bmath{\asymp}}}%
+ \def\bsmile{{\bmath{\smile}}}%
+ \def\bfrown{{\bmath{\frown}}}%
+ \def\bleftharpoonup{{\bmath{\leftharpoonup}}}%
+ \def\bleftharpoondown{{\bmath{\leftharpoondown}}}%
+ \def\brightharpoonup{{\bmath{\rightharpoonup}}}%
+ \def\brightharpoondown{{\bmath{\rightharpoondown}}}%
+ \def\blhook{{\bmath{\lhook}}}%
+ \def\brhook{{\bmath{\rhook}}}%
+ \def\bldotp{{\bmath{\ldotp}}}%
+ \def\bcdotp{{\bmath{\cdotp}}}%
+}
+
+% Make \, work in non-math mode
+\def\,{\relax\ifmmode \mskip\thinmuskip\else \thinspace\fi}
+\let\protect=\relax
+
+\long\def\@ifundefined#1#2#3{\expandafter\ifx\csname
+ #1\endcsname\relax#2\else#3\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% NewFont.sty: ALPHA VERSION patchlevel 8, 16th August 1994, M. Reed
+
+% \addtom@thgroup{math font loading info}
+% Adds to internal \math@groups definition, which is executed at the end
+% of each size changing command. It is called by \NewSymbolFont.
+
+\newtoks\math@groups \math@groups={}
+\def\addtom@thgroup#1#2{#1\expandafter{\the#1#2}} % \mac={new\the\mac}
+
+
+% Make TeX change the values of \s@ze, \ss@ze, \sss@ze when \@npt is
+% executed. This makes it possible for math characters to be loaded
+% at the correct size automatically when the size is changed.
+
+% \addtosizeh@ok{x}{10}{7}{5}
+
+\def\addtosizeh@ok#1#2#3#4{%
+ \expandafter\def\csname @#1pt\endcsname{%
+ \def\s@ze{#2}\def\ss@ze{#3}\def\sss@ze{#4}\the\math@groups%
+ }%
+}
+
+
+% \resetsizehook allows the size parameters to be reset after \addtosizeh@ok
+% has been called (it re-defines \@npt).
+% e.g JFM which requires \xpt to have 10.5pt instead of 10pt.
+% Note: \resetsizehook must be used in the preamble BEFORE any
+% \New... commands.
+
+% e.g. \resetsizehook{x}{10.5}{7}{5}
+
+\let\resetsizehook=\addtosizeh@ok
+
+
+% Standard LaTeX sizes
+
+\ifprod@font
+% \addtosizeh@ok{v} {5} {5} {5}
+% \addtosizeh@ok{vi} {6} {6} {6}
+% \addtosizeh@ok{vii} {7} {6} {5}
+ \addtosizeh@ok{viii} {8} {6} {5}
+ \addtosizeh@ok{ix} {9} {6} {5}
+ \addtosizeh@ok{x} {10}{7} {5}
+ \addtosizeh@ok{xi} {11}{8} {6}
+% \addtosizeh@ok{xii} {12}{8} {6}
+ \addtosizeh@ok{xiv} {14}{10} {7}
+ \addtosizeh@ok{xvii} {17}{12}{10}
+% \addtosizeh@ok{xx} {20}{14}{12}
+% \addtosizeh@ok{xxv} {25}{20}{17}
+\else
+% \addtosizeh@ok{v} {5} {5} {5}
+% \addtosizeh@ok{vi} {6} {6} {6}
+% \addtosizeh@ok{vii} {7} {6} {5}
+ \addtosizeh@ok{viii} {8} {6} {5}
+ \addtosizeh@ok{ix} {9} {6} {5}
+ \addtosizeh@ok{x} {10} {7} {5}
+ \addtosizeh@ok{xi} {10.95} {8} {6}
+% \addtosizeh@ok{xii} {12} {8} {6}
+ \addtosizeh@ok{xiv} {14.4} {10} {7}
+ \addtosizeh@ok{xvii} {17.28} {12} {10}
+% \addtosizeh@ok{xx} {20.74} {14.4} {12}
+% \addtosizeh@ok{xxv} {24.88} {20.74} {17.28}
+\fi
+
+
+\def\get@font#1#2#3{%
+ \edef\fonts@ze{\romannumeral#3}% 10 -> x
+ \edef\fontn@me{\fonts@ze#1}% AMSa -> xAMSa
+ \@ifundefined{\fontn@me}%
+ {%%\typeout{defining \fontn@me}%
+ \global\expandafter\font\csname \fontn@me\endcsname=#2 at #3pt}%
+ {}%
+}
+
+\def\ass@tfont#1#2{%
+ \xdef\fam@name{\csname #1\endcsname}%
+ \xdef\font@name{\csname #2\endcsname}%
+ \let\textfont@name\font@name
+ \textfont\fam@name\textfont@name
+}
+
+\def\ass@sfont#1#2{%
+ \xdef\fam@name{\csname #1\endcsname}%
+ \xdef\font@name{\csname #2\endcsname}%
+ \let\textfont@name\font@name
+ \scriptfont\fam@name\textfont@name
+}
+
+\def\ass@ssfont#1#2{%
+ \xdef\fam@name{\csname #1\endcsname}%
+ \xdef\font@name{\csname #2\endcsname}%
+ \let\textfont@name\font@name
+ \scriptscriptfont\fam@name\textfont@name
+}
+
+
+% fam name base font (allocates a \newfam)
+% \NewSymbolFont {AMSa} {mtxm10}
+
+\def\NewSymbolFont#1#2{%
+ \expandafter\ifx\csname sym#1fam\endcsname\relax % if not defined
+ \expandafter\newfam\csname sym#1fam\endcsname
+ \expandafter\edef\csname sym#1fam\endcsname{\the\allocationnumber}%
+ \addtom@thgroup\math@groups{%
+ \get@font{#1}{#2}{\s@ze}%
+ \ass@tfont{sym#1fam}{\fontn@me}%
+ \get@font{#1}{#2}{\ss@ze}%
+ \ass@sfont{sym#1fam}{\fontn@me}%
+ \get@font{#1}{#2}{\sss@ze}%
+ \ass@ssfont{sym#1fam}{\fontn@me}%
+ }%
+ \else
+ \errmessage{Family `#1' already defined}%
+ \fi
+}
+
+
+% symbol type fam pos (hex)
+% \NewMathSymbol {\blacksquare} {0} {AMSa} {04}
+
+\def\NewMathSymbol#1#2#3#4{%
+ \edef\f@mly{\expandafter\hexnumber{\csname sym#3fam\endcsname}}%
+ \mathchardef#1="#2\f@mly#4\relax
+}
+
+
+% macro name type fam1 pos fam2 pos
+% \NewMathDelimiter{\ulcorner} {4} {AMSa} {70} {AMSb} {70}
+
+\newif\ifd@f
+
+\def\NewMathDelimiter#1#2#3#4#5#6{%
+ \d@ftrue
+ \expandafter\ifx\csname sym#3fam\endcsname\relax
+ \d@ffalse \errmessage{Family `#3' is not defined}%
+ \fi
+ \expandafter\ifx\csname sym#5fam\endcsname\relax
+ \d@ffalse \errmessage{Family `#5' is not defined}%
+ \fi
+ \ifd@f
+ \edef\f@mly{\expandafter\hexnumber{\csname sym#3fam\endcsname}}%
+ \edef\f@mlytw@{\expandafter\hexnumber{\csname sym#5fam\endcsname}}%
+ \xdef#1{\delimiter"#2\f@mly #4\f@mlytw@ #6\relax}%
+ \fi
+}
+
+
+% macro name base font skewchar setting e.g '60 (octal)
+% \NewMathAlphabet {mathbssi} {mtmisb10} {}
+
+\def\setboxz@h{\setbox\z@\hbox}
+\def\wdz@{\wd\z@}
+\def\boxz@{\box\z@}
+\def\setbox@ne{\setbox\@ne}
+\def\wd@ne{\wd\@ne}
+
+\def\math@atom#1#2{%
+ \binrel@{#1}\binrel@@{#2}}
+\def\binrel@#1{\setboxz@h{\thinmuskip0mu
+ \medmuskip\m@ne mu\thickmuskip\@ne mu$#1\m@th$}%
+ \setbox@ne\hbox{\thinmuskip0mu\medmuskip\m@ne mu\thickmuskip
+ \@ne mu${}#1{}\m@th$}%
+ \setbox\tw@\hbox{\hskip\wd@ne\hskip-\wdz@}}
+\def\binrel@@#1{\ifdim\wd2<\z@\mathbin{#1}\else\ifdim\wd\tw@>\z@
+ \mathrel{#1}\else{#1}\fi\fi}
+
+\def\m@thit{1}
+
+\def\set@skchar#1{\global\expandafter\skewchar
+ \csname\fontn@me\endcsname=#1\relax}
+
+\def\NewMathAlphabet#1#2#3{%
+ \def\tst{#3}%
+ \ifx\tst\empty\else % if a \skewchar setting is present
+ \expandafter\gdef\csname #1@sc\endcsname{}% \def\cmd@sc{..}
+ \fi
+ %
+ \expandafter\def\csname #1\endcsname{% \def\cmd{\protect\@cmd}
+ \protect\csname @#1\endcsname}%
+ %
+ \expandafter\def\csname @#1\endcsname##1{% \def\@cmd{..}
+ {%
+ \begingroup
+ \get@font{#1}{#2}{\s@ze}%
+ \@ifundefined{#1@sc}{}{\set@skchar{#3}}%
+ \ass@tfont{m@thit}{\fontn@me}%
+ \get@font{#1}{#2}{\ss@ze}%
+ \@ifundefined{#1@sc}{}{\set@skchar{#3}}%
+ \ass@sfont{m@thit}{\fontn@me}%
+ \get@font{#1}{#2}{\sss@ze}%
+ \@ifundefined{#1@sc}{}{\set@skchar{#3}}%
+ \ass@ssfont{m@thit}{\fontn@me}%
+ %
+ \math@atom{##1}{%
+ \mathchoice%
+ {\hbox{$\m@th\displaystyle##1$}}%
+ {\hbox{$\m@th\textstyle##1$}}%
+ {\hbox{$\m@th\scriptstyle##1$}}%
+ {\hbox{$\m@th\scriptscriptstyle##1$}}}%
+ \endgroup
+ }%
+ }%
+}
+
+
+% macro name base font hyphenchar setting e.g -1 (off)
+% \NewTextAlphabet {textbfit} {mtbxti10} {}
+
+% save a family if \NewTextAlphabet is not used.
+\newif\iffirstta \firsttatrue
+
+\def\set@hchar#1{\global\expandafter\hyphenchar
+ \csname\fontn@me\endcsname=#1\relax}
+
+\def\NewTextAlphabet#1#2#3{%
+ \iffirstta
+ \global\firsttafalse
+ \newfam\scratchfam
+ \edef\scrt@fam{\the\allocationnumber}%
+ \fi
+ \def\tst{#3}%
+ \ifx\tst\empty\else % if a \hyphenchar setting is required
+ \expandafter\gdef\csname #1@hc\endcsname{}% \def\cmd@sc{..}
+ \fi
+ %
+ \expandafter\def\csname #1\endcsname{% \def\cmd{\protect\t@cmd}
+ \protect\csname t@#1\endcsname}%
+ %
+ \long\expandafter\def\csname t@#1\endcsname##1{% \def\t@cmd{..}
+ \ifmmode
+ \typeout{Warning: do not use \expandafter\string\csname #1\endcsname
+ \space in math mode}\fi%
+ {%
+ \get@font{#1}{#2}{\s@ze}\let\t@xtfnt=\fontn@me\relax
+ \@ifundefined{#1@hc}{}{\set@hchar{#3}}%
+ \ass@tfont{scrt@fam}{\fontn@me}%
+ \get@font{#1}{#2}{\ss@ze}%
+ \@ifundefined{#1@hc}{}{\set@hchar{#3}}%
+ \ass@sfont{scrt@fam}{\fontn@me}%
+ \get@font{#1}{#2}{\sss@ze}%
+ \@ifundefined{#1@hc}{}{\set@hchar{#3}}%
+ \ass@ssfont{scrt@fam}{\fontn@me}%
+ \fam\scratchfam\csname\t@xtfnt\endcsname
+ ##1%
+ }%
+ }%
+ %
+ \expandafter\def\csname #1shape% \def\cmdshape{\protect\@cmdshape}
+ \endcsname{\protect\csname @#1shape\endcsname}%
+ %
+ \expandafter\def\csname @#1shape\endcsname{% \def\@cmdshape
+ \ifmmode
+ \typeout{Warning: do not use \expandafter\string\csname
+ #1shape\endcsname \space in math mode}\fi
+ %
+ \get@font{#1}{#2}{\s@ze}\let\t@xtfnt=\fontn@me\relax
+ \@ifundefined{#1@hc}{}{\set@hchar{#3}}%
+ \ass@tfont{scrt@fam}{\fontn@me}%
+ \get@font{#1}{#2}{\ss@ze}%
+ \@ifundefined{#1@hc}{}{\set@hchar{#3}}%
+ \ass@sfont{scrt@fam}{\fontn@me}%
+ \get@font{#1}{#2}{\sss@ze}%
+ \@ifundefined{#1@hc}{}{\set@hchar{#3}}%
+ \ass@ssfont{scrt@fam}{\fontn@me}%
+ \fam\scratchfam\csname\t@xtfnt\endcsname
+ }%
+}
+
+
+% \bmath{math text}
+
+\ifprod@font
+ \def\math@itfnt{mtmib10}
+ \def\math@syfnt{mtbsy10}
+\else
+ \def\math@itfnt{cmmib10}
+ \def\math@syfnt{cmbsy10}
+\fi
+
+\def\m@thsy{2}
+
+\def\bmath{\protect\@bmath}
+\def\@bmath#1{%
+ {%
+ \begingroup
+ \get@font{mthit}{\math@itfnt}{\s@ze}\set@skchar{'177}%
+ \ass@tfont{m@thit}{\fontn@me}%
+ \get@font{mthit}{\math@itfnt}{\ss@ze}\set@skchar{'177}%
+ \ass@sfont{m@thit}{\fontn@me}%
+ \get@font{mthit}{\math@itfnt}{\sss@ze}\set@skchar{'177}%
+ \ass@ssfont{m@thit}{\fontn@me}%
+ %
+ \get@font{mthsy}{\math@syfnt}{\s@ze}\set@skchar{'60}%
+ \ass@tfont{m@thsy}{\fontn@me}%
+ \get@font{mthsy}{\math@syfnt}{\ss@ze}\set@skchar{'60}%
+ \ass@sfont{m@thsy}{\fontn@me}%
+ \get@font{mthsy}{\math@syfnt}{\sss@ze}\set@skchar{'60}%
+ \ass@ssfont{m@thsy}{\fontn@me}%
+ %
+ \math@atom{#1}{%
+ \mathchoice%
+ {\hbox{$\m@th\displaystyle#1$}}%
+ {\hbox{$\m@th\textstyle#1$}}%
+ {\hbox{$\m@th\scriptstyle#1$}}%
+ {\hbox{$\m@th\scriptscriptstyle#1$}}}%
+ \endgroup
+ }%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+% Astronomy and Astrophysics symbol macros
+
+\def\la{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr<\cr\sim\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+<\cr\sim\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+<\cr\sim\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+<\cr\sim\cr}}}}}
+
+\def\ga{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\sim\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+>\cr\sim\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+>\cr\sim\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr\sim\cr}}}}}
+
+\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip
+\halign{\hfil
+$\displaystyle##$\hfil\cr\gets\cr\to\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets
+\cr\to\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets
+\cr\to\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+\gets\cr\to\cr}}}}}
+
+\def\cor{\mathrel{\mathchoice {\hbox{$\widehat=$}}{\hbox{$\widehat=$}}
+{\hbox{$\scriptstyle\hat=$}}
+{\hbox{$\scriptscriptstyle\hat=$}}}}
+
+\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr
+\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr
+\noalign{\vskip1pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+<\cr
+\noalign{\vskip0.9pt}=\cr}}}}}
+
+\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr
+\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr
+\noalign{\vskip1pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr
+\noalign{\vskip0.9pt}=\cr}}}}}
+
+\def\sol{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr\sim\cr<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\sim\cr
+<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\sim\cr
+<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+\sim\cr<\cr}}}}}
+
+\def\sog{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr\sim\cr>\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\sim\cr
+>\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+\sim\cr>\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+\sim\cr>\cr}}}}}
+
+\def\lse{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr<\cr\simeq\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+<\cr\simeq\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+<\cr\simeq\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+<\cr\simeq\cr}}}}}
+
+\def\gse{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\simeq\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+>\cr\simeq\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+>\cr\simeq\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr\simeq\cr}}}}}
+
+\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1.5pt}<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+>\cr\noalign{\vskip-1.5pt}<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+>\cr\noalign{\vskip-1pt}<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr\noalign{\vskip-0.5pt}<\cr}}}}}
+
+\def\leogr{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr<\cr\noalign{\vskip-1.5pt}>\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+<\cr\noalign{\vskip-1.5pt}>\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+<\cr\noalign{\vskip-1pt}>\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+<\cr\noalign{\vskip-0.5pt}>\cr}}}}}
+
+\def\loa{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr<\cr\approx\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+<\cr\approx\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+<\cr\approx\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+<\cr\approx\cr}}}}}
+
+\def\goa{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\approx\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+>\cr\approx\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+>\cr\approx\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr\approx\cr}}}}}
+
+\def\sun{\hbox{$\odot$}}
+\def\degr{\hbox{$^\circ$}}
+\def\diameter{{\ifmmode\mathchoice
+{\ooalign{\hfil\hbox{$\displaystyle/$}\hfil\crcr
+{\hbox{$\displaystyle\mathchar"20D$}}}}
+{\ooalign{\hfil\hbox{$\textstyle/$}\hfil\crcr
+{\hbox{$\textstyle\mathchar"20D$}}}}
+{\ooalign{\hfil\hbox{$\scriptstyle/$}\hfil\crcr
+{\hbox{$\scriptstyle\mathchar"20D$}}}}
+{\ooalign{\hfil\hbox{$\scriptscriptstyle/$}\hfil\crcr
+{\hbox{$\scriptscriptstyle\mathchar"20D$}}}}
+\else{\ooalign{\hfil/\hfil\crcr\mathhexbox20D}}%
+\fi}}
+
+\def\sq{\ifmmode\squareforqed\else{\unskip\nobreak\hfil
+\penalty50\hskip1em\null\nobreak\hfil\squareforqed
+\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi}
+\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}}
+
+\def\fd{\hbox{$.\!\!^{\rm d}$}}
+\def\fh{\hbox{$.\!\!^{\rm h}$}}
+\def\fm{\hbox{$.\!\!^{\rm m}$}}
+\def\fs{\hbox{$.\!\!^{\rm s}$}}
+\def\fdg{\hbox{$.\!\!^\circ$}}
+\def\farcm{\hbox{$.\mkern-4mu^\prime$}}
+\def\farcs{\hbox{$.\!\!^{\prime\prime}$}}
+\def\fp{\hbox{$.\!\!^{\scriptscriptstyle\rm p}$}}
+\def\arcmin{\hbox{$^\prime$}}
+\def\arcsec{\hbox{$^{\prime\prime}$}}
+
+% Simulated Blackboard Bold symbols
+
+\def\bbbr{{\rm I\!R}}
+\def\bbbm{{\rm I\!M}}
+\def\bbbn{{\rm I\!N}}
+\def\bbbf{{\rm I\!F}}
+\def\bbbh{{\rm I\!H}}
+\def\bbbk{{\rm I\!K}}
+\def\bbbp{{\rm I\!P}}
+\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l}
+{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}}
+\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}}
+\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
+Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}}
+\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
+T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox
+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox
+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox
+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}}
+\def\bbbs{{\mathchoice
+{\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
+to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
+to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
+to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
+to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
+\def\bbbz{{\mathchoice {\hbox{$\sf\textstyle Z\kern-0.4em Z$}}
+{\hbox{$\sf\textstyle Z\kern-0.4em Z$}}
+{\hbox{$\sf\scriptstyle Z\kern-0.3em Z$}}
+{\hbox{$\sf\scriptscriptstyle Z\kern-0.2em Z$}}}}
+
+
+% NUMBER THE DESIGN ELEMENTS
+
+\def\Nulle{0} % null element
+\def\Afe{1} % author affiliation
+\def\Hae{2} % heading A
+\def\Hbe{3} % heading B
+\def\Hce{4} % heading C
+\def\Hde{5} % heading D
+
+
+% TEMPORARY REGISTERS
+
+\newcount\LastMac \LastMac=\Nulle
+
+\newskip\half \half=5.5pt plus 1.5pt minus 2.25pt
+\newskip\one \one=11pt plus 3pt minus 5.5pt
+\newskip\onehalf \onehalf=16.5pt plus 5.5pt minus 8.25pt
+\newskip\two \two=22pt plus 5.5pt minus 11pt
+
+\def\Half{\addvspace{\half}}
+\def\One{\addvspace{\one}}
+\def\OneHalf{\addvspace{\onehalf}}
+\def\Two{\addvspace{\two}}
+
+\def\Referee{% produce version for refereeing
+ \def\baselinestretch{2}%
+ \ninepoint
+}
+
+\def\Raggedright{% set lines unjustified
+ \rightskip=\z@ plus \hsize\relax
+}
+
+\def\Fullout{% set lines justified
+ \rightskip=\z@\relax
+}
+
+\def\Hang#1#2{% set hanging indentation
+ \hangindent=#1%
+ \hangafter=#2\relax
+}
+
+\def\makeatletter{\catcode `\@=11\relax}
+\def\makeatother{\catcode `\@=12\relax}
+
+
+% Pagestyles
+
+\newif\ifsp@page
+\def\pagestyle#1{\csname ps@#1\endcsname}
+\def\thispagestyle#1{\global\sp@pagetrue\gdef\sp@type{#1}}
+
+\def\ps@titlepage{%
+ \def\@oddhead{\eightpoint\noindent \the\CatchLine
+ \ifprod@font\else\qquad Printed\ \today\qquad
+ (MN plain \TeX\ macros\ v\@version)\fi \hfil}%
+ \let\@evenhead=\@oddhead
+}
+
+\def\ps@headings{%
+ \def\@oddhead{\elevenpoint\it\noindent
+ \hfill\the\RightHeader\hskip1.5em\rm\folio}%
+ \def\@evenhead{\elevenpoint\noindent
+ \folio\hskip1.5em\it\the\LeftHeader\hfill}%
+}
+
+\def\ps@plate{%
+ \def\@oddhead{\eightpoint\noindent\plt@cap\hfil}%
+ \def\@evenhead{\eightpoint\noindent\plt@cap\hfil}%
+}
+
+
+% DESIGN ELEMENT DEFINITIONS
+
+% Article opening
+
+\def\title#1{% article title
+ \bgroup
+ \vbox to 8pt{\vss}%
+ \seventeenpoint
+ \Raggedright
+ \noindent \strut{\bf #1}\par
+ \egroup
+}
+
+\def\author#1{% article author(s)
+ \bgroup
+ \ifnum\LastMac=\Afe \OneHalf\else \vskip 21pt\fi
+ \fourteenpoint
+ \Raggedright
+ \noindent \strut #1\par
+ \vskip 3pt%
+ \egroup
+}
+
+\def\affiliation#1{% author(s) affiliation
+ \bgroup
+ \vskip -4pt%
+ \eightpoint
+ \Raggedright
+ \noindent \strut {\it #1}\par
+ \egroup
+ \LastMac=\Afe\relax
+}
+
+\def\acceptedline#1{% acceptance date
+ \bgroup
+ \Two
+ \eightpoint
+ \Raggedright
+ \noindent \strut #1\par
+ \egroup
+}
+
+\long\def\abstract#1{%
+ \bgroup
+ \vskip 20pt%
+ \everypar{\Hang{11pc}{0}}%
+ \noindent{\ninebf ABSTRACT}\par
+ \tenpoint
+ \Fullout
+ \noindent #1\par
+ \egroup
+}
+
+\long\def\keywords#1{% keywords
+ \bgroup
+ \Half
+ \everypar{\Hang{11pc}{0}}%
+ \tenpoint
+ \Fullout
+ \noindent\hbox{\bf Key words:}\ #1\par
+ \egroup
+}
+
+
+% The \maketitle macro ensures that the two spanning material appears
+% at the top of the first page, and that it has two lines of space
+% underneath it. If you forget this in you input, no output will be produced.
+% The \BeginOpening (alias \begintopmatter) macro should be called at the
+% very start of the input file, so that it is in force when the document
+% starts. This ensures that when \maketitle is called that the group is
+% closed, and the material gets printed.
+
+\def\maketitle{%
+ \EndOpening
+ \ifsinglecol \else \MakePage\fi
+}
+
+
+% Page offset
+
+\def\pageoffset#1#2{\hoffset=#1\relax\voffset=#2\relax}
+
+
+% Counter setup
+
+\def\@nameuse#1{\csname #1\endcsname}
+\def\arabic#1{\@arabic{\@nameuse{#1}}}
+\def\alph#1{\@alph{\@nameuse{#1}}}
+\def\Alph#1{\@Alph{\@nameuse{#1}}}
+\def\@arabic#1{\number #1}
+\def\@Alph#1{\ifcase#1\or A\or B\or C\or D\else\@Ialph{#1}\fi}
+\def\@Ialph#1{\ifcase#1\or \or \or \or \or E\or F\or G\or H\or I\or J\or
+ K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or
+ Y\or Z\else\errmessage{Counter out of range}\fi}
+\def\@alph#1{\ifcase#1\or a\or b\or c\or d\else\@ialph{#1}\fi}
+\def\@ialph#1{\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or
+ k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or
+ z\else\errmessage{Counter out of range}\fi}
+
+
+% Equation auto-numbering
+
+\newcount\Eqnno
+\newcount\SubEqnno
+
+\def\theeq{\arabic{Eqnno}}
+\def\thesubeq{\alph{SubEqnno}}
+
+\def\stepeq{\relax
+ \global\SubEqnno \z@
+ \global\advance\Eqnno \@ne\relax
+ {\rm (\theeq)}%
+}
+
+\def\startsubeq{\relax
+ \global\SubEqnno \z@
+ \global\advance\Eqnno \@ne\relax
+ \stepsubeq
+}
+
+\def\stepsubeq{\relax
+ \global\advance\SubEqnno \@ne\relax
+ {\rm (\theeq\thesubeq)}%
+}
+
+
+% Headings
+
+\newcount\Sec % heading auto number counters
+\newcount\SecSec
+\newcount\SecSecSec
+
+\def\thesection{\arabic{Sec}}
+\def\thesubsection{\thesection.\arabic{SecSec}}
+\def\thesubsubsection{\thesubsection.\arabic{SecSecSec}}
+
+
+\Sec=\z@
+
+\def\:{\let\@sptoken= } \: % this makes \@sptoken a space token
+\def\:{\@xifnch} \expandafter\def\: {\futurelet\@tempc\@ifnch}
+
+\def\@ifnextchar#1#2#3{%
+ \let\@tempMACe #1%
+ \def\@tempMACa{#2}%
+ \def\@tempMACb{#3}%
+ \futurelet \@tempMACc\@ifnch%
+}
+
+\def\@ifnch{%
+\ifx \@tempMACc \@sptoken%
+ \let\@tempMACd\@xifnch%
+\else%
+ \ifx \@tempMACc \@tempMACe%
+ \let\@tempMACd\@tempMACa%
+ \else%
+ \let\@tempMACd\@tempMACb%
+ \fi%
+\fi%
+\@tempMACd%
+}
+
+\def\@ifstar#1#2{\@ifnextchar *{\def\@tempMACa*{#1}\@tempMACa}{#2}}
+
+\newskip\@tempskipb
+
+\def\addvspace#1{%
+ \ifvmode\else \endgraf\fi%
+ \ifdim\lastskip=\z@%
+ \vskip #1\relax%
+ \else%
+ \@tempskipb#1\relax\@xaddvskip%
+ \fi%
+}
+
+\def\@xaddvskip{%
+ \ifdim\lastskip<\@tempskipb%
+ \vskip-\lastskip%
+ \vskip\@tempskipb\relax%
+ \else%
+ \ifdim\@tempskipb<\z@%
+ \ifdim\lastskip<\z@ \else%
+ \advance\@tempskipb\lastskip%
+ \vskip-\lastskip\vskip\@tempskipb%
+ \fi%
+ \fi%
+ \fi%
+}
+
+\newskip\@tmpSKIP
+
+\def\addpen#1{%
+ \ifvmode
+ \if@nobreak
+ \else
+ \ifdim\lastskip=\z@
+ \penalty#1\relax
+ \else
+ \@tmpSKIP=\lastskip
+ \vskip -\lastskip
+ \penalty#1\vskip\@tmpSKIP
+ \fi
+ \fi
+ \fi
+}
+
+\newcount\@clubpen \@clubpen=\clubpenalty
+\newif\if@nobreak \@nobreakfalse
+
+\def\@noafterindent{%
+ \global\@nobreaktrue
+ \everypar{\if@nobreak
+ \global\@nobreakfalse
+ \clubpenalty \@M
+ {\setbox\z@\lastbox}%
+ \LastMac=\Nulle\relax%
+ \else
+ \clubpenalty \@clubpen
+ \everypar{}%
+ \fi}%
+}
+
+\newcount\gds@cbrk \gds@cbrk=-300
+
+\def\@nohdbrk{\interlinepenalty \@M\relax}
+
+\let\@par=\par
+\def\@restorepar{\def\par{\@par}}
+
+\newif\if@endpe \@endpefalse
+
+\def\@doendpe{\@endpetrue \@nobreakfalse \LastMac=\Nulle\relax%
+ \def\par{\@restorepar\everypar{}\par\@endpefalse}%
+ \everypar{\setbox\z@\lastbox\everypar{}\@endpefalse}%
+}
+
+\def\section{\@ifstar{\@ssection}{\@section}}
+
+\def\@section#1{% heading A (\section{....})
+ \if@nobreak
+ \everypar{}%
+ \ifnum\LastMac=\Hae \addvspace{\half}\fi
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\two}%
+ \fi
+ \bgroup
+ \ninepoint\bf
+ \Raggedright
+ \global\advance\Sec \@ne
+ \ifappendix
+ \global\Eqnno=\z@ \global\SubEqnno=\z@\relax
+ \def\ch@ck{#1}%
+ \ifx\ch@ck\empty \def\c@lon{}\else\def\c@lon{:}\fi
+ \noindent\@nohdbrk APPENDIX\ \thesection\c@lon\hskip 0.5em%
+ \uppercase{#1}\par
+ \else
+ \noindent\@nohdbrk\thesection\hskip 1pc \uppercase{#1}\par
+ \fi
+ \global\SecSec=\z@
+ \egroup
+ \nobreak
+ \vskip\half
+ \nobreak
+ \@noafterindent
+ \LastMac=\Hae\relax
+}
+
+\def\@ssection#1{% main section heading (\section*{....})
+ \if@nobreak
+ \everypar{}%
+ \ifnum\LastMac=\Hae \addvspace{\half}\fi
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\two}%
+ \fi
+ \bgroup
+ \ninepoint\bf
+ \Raggedright
+% \ifappendix
+% \global\Eqnno=\z@ \global\SubEqnno=\z@\relax % mh in apps dont reset
+% \noindent\@nohdbrk APPENDIX:\hskip 0.5em%
+% \uppercase{#1}\par
+% \else
+ \noindent\@nohdbrk\uppercase{#1}\par
+% \fi
+ \egroup
+ \nobreak
+ \vskip\half
+ \nobreak
+ \@noafterindent
+ \LastMac=\Hae\relax
+}
+
+\def\subsection{\@ifstar{\@ssubsection}{\@subsection}}
+
+\def\@subsection#1{% heading B
+ \if@nobreak
+ \everypar{}%
+ \ifnum\LastMac=\Hae \addvspace{1pt plus 1pt minus .5pt}\fi
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\onehalf}%
+ \fi
+ \bgroup
+ \ninepoint\bf
+ \Raggedright
+ \global\advance\SecSec \@ne
+ \noindent\@nohdbrk\thesubsection \hskip 1pc\relax #1\par
+ \global\SecSecSec=\z@
+ \egroup
+ \nobreak
+ \vskip\half
+ \nobreak
+ \@noafterindent
+ \LastMac=\Hbe\relax
+}
+
+\def\@ssubsection#1{% heading B*
+ \if@nobreak
+ \everypar{}%
+ \ifnum\LastMac=\Hae \addvspace{1pt plus 1pt minus .5pt}\fi
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\onehalf}%
+ \fi
+ \bgroup
+ \ninepoint\bf
+ \Raggedright
+ \noindent\@nohdbrk #1\par
+ \egroup
+ \nobreak
+ \vskip\half
+ \nobreak
+ \@noafterindent
+ \LastMac=\Hbe\relax
+}
+
+\def\subsubsection{\@ifstar{\@ssubsubsection}{\@subsubsection}}
+
+\def\@subsubsection#1{% heading C
+ \if@nobreak
+ \everypar{}%
+ \ifnum\LastMac=\Hbe \addvspace{1pt plus 1pt minus .5pt}\fi
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\onehalf}%
+ \fi
+ \bgroup
+ \ninepoint\it
+ \Raggedright
+ \global\advance\SecSecSec \@ne
+ \noindent\@nohdbrk\thesubsubsection \hskip 1pc\relax #1\par
+ \egroup
+ \nobreak
+ \vskip\half
+ \nobreak
+ \@noafterindent
+ \LastMac=\Hce\relax
+}
+
+\def\@ssubsubsection#1{% heading C*
+ \if@nobreak
+ \everypar{}%
+ \ifnum\LastMac=\Hbe \addvspace{1pt plus 1pt minus .5pt}\fi
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\onehalf}%
+ \fi
+ \bgroup
+ \ninepoint\it
+ \Raggedright
+ \noindent\@nohdbrk #1\par
+ \egroup
+ \nobreak
+ \vskip\half
+ \nobreak
+ \@noafterindent
+ \LastMac=\Hce\relax
+}
+
+\def\paragraph#1{% heading D
+ \if@nobreak
+ \everypar{}%
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\one}%
+ \fi%
+ \bgroup%
+ \ninepoint\it
+ \noindent #1\ \nobreak%
+ \egroup
+ \LastMac=\Hde\relax
+ \ignorespaces
+}
+
+
+% Appendix
+
+\newif\ifappendix
+
+\def\appendix{%
+ \global\appendixtrue
+ \def\thesection{\Alph{Sec}}%
+ \def\thesubsection{\thesection\arabic{SecSec}}%
+ \def\theeq{\thesection\arabic{Eqnno}}%
+ \Sec=\z@ \SecSec=\z@ \SecSecSec=\z@ \Eqnno=\z@ \SubEqnno=\z@\relax
+}
+
+
+% Text
+
+\let\tx=\relax % provided for backward compatibility
+
+
+% Lists
+
+\def\beginlist{%
+ \par\if@nobreak \else\addvspace{\half}\fi%
+ \bgroup%
+ \ninepoint
+ \let\item=\list@item%
+}
+
+\def\list@item{%
+ \par\noindent\hskip 1em\relax%
+ \ignorespaces%
+}
+
+\def\endlist{\par\egroup\addvspace{\half}\@doendpe}
+
+
+% References
+
+\def\beginrefs{%
+ \par
+ \bgroup
+ \eightpoint
+ \Fullout
+ \let\bibitem=\bib@item
+}
+
+\def\bib@item{%
+ \par\parindent=1.5em\Hang{1.5em}{1}%
+ \everypar={\Hang{1.5em}{1}\ignorespaces}%
+ \noindent\ignorespaces
+}
+
+\def\endrefs{\par\egroup\@doendpe}
+
+
+% Page heads
+
+\newtoks\CatchLine
+
+\def\@journal{Mon.\ Not.\ R.\ Astron.\ Soc.\ } % The journal title string
+\def\@pubyear{1994} % Assign a default publication year
+\def\@pagerange{000--000} % Assign a default page-range
+\def\@volume{000} % Assign a default volume number
+\def\@microfiche{} %
+
+\def\pubyear#1{\gdef\@pubyear{#1}\@makecatchline}
+\def\pagerange#1{\gdef\@pagerange{#1}\@makecatchline}
+\def\volume#1{\gdef\@volume{#1}\@makecatchline}
+\def\microfiche#1{\gdef\@microfiche{and Microfiche\ #1}\@makecatchline}
+
+\def\@makecatchline{%
+ \global\CatchLine{%
+ {\rm \@journal {\bf \@volume},\ \@pagerange\ (\@pubyear)\ \@microfiche}}%
+}
+
+\@makecatchline % Assign a catchline, using the above defaults
+
+\newtoks\LeftHeader
+\def\shortauthor#1{% left page head
+ \global\LeftHeader{#1}%
+}
+
+\newtoks\RightHeader
+\def\shorttitle#1{% right page head
+ \global\RightHeader{#1}%
+}
+
+\def\PageHead{% recto/verso running heads
+ \begingroup
+ \ifsp@page
+ \csname ps@\sp@type\endcsname
+ \global\sp@pagefalse
+ \fi
+ \ifodd\pageno
+ \let\the@head=\@oddhead
+ \else
+ \let\the@head=\@evenhead
+ \fi
+ \vbox to \z@{\vskip-22.5\p@%
+ \hbox to \PageWidth{\vbox to8.5\p@{}%
+ \the@head
+ }%
+ \vss}%
+ \endgroup
+ \nointerlineskip
+}
+
+\def\today{%
+ \number\day\space
+ \ifcase\month\or January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\year%
+}
+
+\def\PageFoot{} % No page footer as default
+
+\def\authorcomment#1{%
+ \gdef\PageFoot{%
+ \nointerlineskip%
+ \vbox to 22pt{\vfil%
+ \hbox to \PageWidth{\elevenpoint\noindent \hfil #1 \hfil}}%
+ }%
+}
+
+
+% Plate pages
+
+\newif\ifplate@page
+\newbox\plt@box
+
+\def\beginplatepage{%
+ \let\plate=\plate@head
+ \let\caption=\fig@caption
+ \global\setbox\plt@box=\vbox\bgroup
+ \TEMPDIMEN=\PageWidth % For \fig@caption test
+ \hsize=\PageWidth\relax
+}
+
+\def\endplatepage{\par\egroup\global\plate@pagetrue}
+\def\plate@head#1{\gdef\plt@cap{#1}}
+
+% Letters option
+
+\def\letters{%
+ \gdef\folio{\ifnum\pageno<\z@ L\romannumeral-\pageno
+ \else L\number\pageno \fi}%
+}
+
+
+% Math setup
+
+% The standard math indentation
+\newdimen\mathindent
+
+\global\mathindent=\z@
+\global\everydisplay{\global\@dspwd=\displaywidth\displaysetup}
+
+% New versions of \displaylines, \eqalign, \eqalignno for
+% when non-centered math is in use.
+
+\def\@displaylines#1{% (for non-centered math)
+ {}$\displ@y\hbox{\vbox{\halign{$\@lign\hfil\displaystyle##\hfil$\crcr
+ #1\crcr}}}${}%
+}
+
+\def\@eqalign#1{\null\vcenter{\openup\jot\m@th% (for non-centered math)
+ \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil
+ \crcr#1\crcr}}%
+}
+
+\def\@eqalignno#1{% (for non-centered math)
+ \global\advance\@dspwd by -\mathindent%
+ {}$\displ@y\hbox{\vbox{\halign to\@dspwd%
+ {\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
+ &\llap{$\@lign##$}\tabskip\z@skip\crcr
+ #1\crcr}}}${}%
+}
+
+% When equations are flushleft ensure, that \displaylines,
+% \eqalign, \eqalignno and \leqalignno point to the new versions of
+% the macros. Also make \leqalignno act like \eqalignno, otherwise the
+% equation text would `crash' into the equation number.
+
+\global\let\displaylines=\@displaylines
+\global\let\eqalign=\@eqalign
+\global\let\eqalignno=\@eqalignno
+\global\let\leqalignno=\@eqalignno
+
+\newdimen\@dspwd \@dspwd=\z@
+\newif\if@eqno
+\newif\if@leqno
+\newtoks\@eqn
+\newtoks\@eq
+
+\def\displaysetup#1$${\displaytest#1\eqno\eqno\displaytest}
+
+\def\displaytest#1\eqno#2\eqno#3\displaytest{%
+ \if!#3!\ldisplaytest#1\leqno\leqno\ldisplaytest
+ \else\@eqnotrue\@leqnofalse\@eqn={#2}\@eq={#1}\fi
+ \generaldisplay$$}
+
+\def\ldisplaytest#1\leqno#2\leqno#3\ldisplaytest{%
+\@eq={#1}%
+ \if!#3!\@eqnofalse\else\@eqnotrue\@leqnotrue
+ \@eqn={#2}\fi}
+
+\def\generaldisplay{%
+ \if@eqno
+ \if@leqno
+ \hbox to \displaywidth{\noindent
+ \rlap{$\displaystyle\the\@eqn$}%
+ \hskip\mathindent$\displaystyle\the\@eq$\hfil}%
+ \else
+ \hbox to \displaywidth{\noindent
+ \hskip\mathindent
+ $\displaystyle\the\@eq$\hfil$\displaystyle\the\@eqn$}%
+ \fi
+ \else
+ \hbox to \displaywidth{\noindent
+ \hskip\mathindent$\displaystyle\the\@eq$\hfil}%
+ \fi
+}
+
+
+% Finishing notice
+
+\def\@notice{%
+ \par\Two%
+ \noindent{\b@ls{11pt}\ninerm This paper has been produced using the
+ Royal Astronomical Society/Blackwell Science \TeX\ macros.\par}%
+}
+
+% redefine \bye to output our identification notice :
+\outer\def\bye{\@notice\par\vfill\supereject\end}
+
+
+% define a sign on :
+
+\def\start@mess{%
+ Monthly notices of the RAS journal style (\@typeface)\space
+ v\@version,\space \@verdate.%
+}
+
+\everyjob{\Warn{\start@mess}}
+
+
+% Two-column macros
+
+%--------------------------------------------------------%
+% INITIALISATION %
+%--------------------------------------------------------%
+
+\newif\if@debug \@debugfalse % when false, only warnings displayed
+
+\def\Print#1{\if@debug\immediate\write16{#1}\else \fi}
+\def\Warn#1{\immediate\write16{#1}}
+\def\wlog#1{}
+
+\newcount\Iteration % temporary loop counter
+
+\def\Single{0} \def\Double{1} % ItemSPAN's
+\def\Figure{0} \def\Table{1} % ItemTYPE's
+
+\def\InStack{0} % ItemSTATUS
+\def\InZoneA{1}
+\def\InZoneB{2}
+\def\InZoneC{3}
+
+\newcount\TEMPCOUNT % temporary count register
+\newdimen\TEMPDIMEN % temporary dimen register
+\newbox\TEMPBOX % temporary box register
+\newbox\VOIDBOX % a box which is permenately void
+
+\newcount\LengthOfStack % number of items currently in stack
+\newcount\MaxItems % maximum number of items allowed in stack
+\newcount\StackPointer
+\newcount\Point % used in calculation for generating the
+ % physical address of an item in the stack.
+\newcount\NextFigure % number of next figure to be output
+\newcount\NextTable % number of next table to be output
+\newcount\NextItem % Next item to consider by order in stack
+
+\newcount\StatusStack % set to point to top of STATUS stack
+\newcount\NumStack % set to point to top of NUMBER stack
+\newcount\TypeStack % set to point to top of TYPE stack
+\newcount\SpanStack % set to point to top of SPAN stack
+\newcount\BoxStack % set to point to top of BOX stack
+
+\newcount\ItemSTATUS % status of present item
+\newcount\ItemNUMBER % number of present item
+\newcount\ItemTYPE % type of present item
+\newcount\ItemSPAN % span of present item
+\newbox\ItemBOX % box of present item
+\newdimen\ItemSIZE % size of present item
+ % (calculated by GetItemBOX)
+
+\newdimen\PageHeight % vertical measure of full page
+\newdimen\TextLeading % distance between baselines of body text
+\newdimen\Feathering % amount of interline stretch
+\newcount\LinesPerPage % height of page in text lines
+\newdimen\ColumnWidth % width of 1 column of text
+\newdimen\ColumnGap % size of gap between columns
+\newdimen\PageWidth % = \ColumnWidth * 2 + \ColumnGap
+\newdimen\BodgeHeight % Bodge to align figures and tables with text
+\newcount\Leading % Set to same as \TextLeading above
+
+\newdimen\ZoneBSize % size of items in ZoneB
+\newdimen\TextSize % size of text in ZoneB
+\newbox\ZoneABOX % contains Zone A material
+\newbox\ZoneBBOX % contains Zone B material
+\newbox\ZoneCBOX % contains Zone C material
+
+\newif\ifFirstSingleItem
+\newif\ifFirstZoneA
+\newif\ifMakePageInComplete
+\newif\ifMoreFigures \MoreFiguresfalse % set true in join stack
+\newif\ifMoreTables \MoreTablesfalse % set true in join stack
+
+\newif\ifFigInZoneB % used to determine in which zone an item
+\newif\ifFigInZoneC % will be placed based on what is in other
+\newif\ifTabInZoneB % zones already for a given page.
+\newif\ifTabInZoneC
+
+\newif\ifZoneAFullPage
+
+\newbox\MidBOX % = LeftBOX+gap+RightBOX
+\newbox\LeftBOX
+\newbox\RightBOX
+\newbox\PageBOX % complete made-up page
+
+\newif\ifLeftCOL % flags first pass through output routine
+\LeftCOLtrue
+
+\newdimen\ZoneBAdjust
+
+\newcount\ItemFits
+\def\Yes{1}
+\def\No{2}
+
+\def\LineAdjust#1{\global\ZoneBAdjust=#1\TextLeading\relax}
+
+
+% Setup file.
+
+\MaxItems=15
+\NextFigure=\z@ % used for article opening
+\NextTable=\@ne
+
+\BodgeHeight=6pt
+\TextLeading=11pt % baselineskip of body text
+\Leading=11
+\Feathering=\z@ % amount of interline stretch
+\LinesPerPage=61 % number of text lines per full page -1
+\topskip=\TextLeading
+\ColumnWidth=20pc % width of text columns
+\ColumnGap=2pc % gap between columns
+
+\newskip\ItemSepamount % space between floats
+\ItemSepamount=\TextLeading plus \TextLeading minus 4pt
+
+\parskip=\z@ plus .1pt
+\parindent=18pt
+\widowpenalty=\z@
+\clubpenalty=10000
+\tolerance=1500
+\hbadness=1500
+\abovedisplayskip=6pt plus 2pt minus 1pt
+\belowdisplayskip=6pt plus 2pt minus 1pt
+\abovedisplayshortskip=6pt plus 2pt minus 1pt
+\belowdisplayshortskip=6pt plus 2pt minus 1pt
+
+\frenchspacing
+
+\ninepoint % start main text size
+
+\PageHeight=682pt
+\PageWidth=2\ColumnWidth
+\advance\PageWidth by \ColumnGap
+
+\pagestyle{headings}
+
+
+%--------------------------------------------------------%
+% STACKS %
+%--------------------------------------------------------%
+
+% THE ITEM STACK
+% The item stack contains contains figures and tables
+% in the order in which they appear in the article source
+% code.
+
+% allocate stack space
+
+\newcount\DUMMY \StatusStack=\allocationnumber
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+
+\newcount\DUMMY \NumStack=\allocationnumber
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+
+\newcount\DUMMY \TypeStack=\allocationnumber
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+
+\newcount\DUMMY \SpanStack=\allocationnumber
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+
+\newbox\DUMMY \BoxStack=\allocationnumber
+\newbox\DUMMY \newbox\DUMMY \newbox\DUMMY
+\newbox\DUMMY \newbox\DUMMY \newbox\DUMMY
+\newbox\DUMMY \newbox\DUMMY \newbox\DUMMY
+\newbox\DUMMY \newbox\DUMMY \newbox\DUMMY
+\newbox\DUMMY \newbox\DUMMY \newbox\DUMMY
+
+\def\wlog{\immediate\write\m@ne}
+
+% \GetItemSTATUS, \GetItemNUMBER, \GetItemTYPE, \GetItemSPAN,
+% \GetItemBox
+% are used to get details of a particular item from the item
+% stack. The argument to each of these is the items position
+% in the stack (usually \StackPointer)...not the items number.
+
+\def\GetItemAll#1{%
+ \GetItemSTATUS{#1}
+ \GetItemNUMBER{#1}
+ \GetItemTYPE{#1}
+ \GetItemSPAN{#1}
+ \GetItemBOX{#1}
+}
+
+% Note: \LeaveStack uses this routine. Do not destroy \Point
+\def\GetItemSTATUS#1{%
+ \Point=\StatusStack
+ \advance\Point by #1
+ \global\ItemSTATUS=\count\Point
+}
+
+% Note: \LeaveStack uses this routine. Do not destroy \Point
+\def\GetItemNUMBER#1{%
+ \Point=\NumStack
+ \advance\Point by #1
+ \global\ItemNUMBER=\count\Point
+}
+
+% Note: \LeaveStack uses this routine. Do not destroy \Point
+\def\GetItemTYPE#1{%
+ \Point=\TypeStack
+ \advance\Point by #1
+ \global\ItemTYPE=\count\Point
+}
+
+% Note: \LeaveStack uses this routine. Do not destroy \Point
+\def\GetItemSPAN#1{%
+ \Point\SpanStack
+ \advance\Point by #1
+ \global\ItemSPAN=\count\Point
+}
+
+% Note: \LeaveStack uses this routine. Do not destroy \Point
+\def\GetItemBOX#1{%
+ \Point=\BoxStack
+ \advance\Point by #1
+ \global\setbox\ItemBOX=\vbox{\copy\Point}
+ \global\ItemSIZE=\ht\ItemBOX
+ \global\advance\ItemSIZE by \dp\ItemBOX
+ \TEMPCOUNT=\ItemSIZE
+ \divide\TEMPCOUNT by \Leading
+ \divide\TEMPCOUNT by 65536
+ \advance\TEMPCOUNT \@ne
+ \ItemSIZE=\TEMPCOUNT pt
+ \global\multiply\ItemSIZE by \Leading
+}
+
+% item joins stack
+
+\def\JoinStack{%
+ \ifnum\LengthOfStack=\MaxItems % stack is full of items
+ \Warn{WARNING: Stack is full...some items will be lost!}
+ \else
+ \Point=\StatusStack
+ \advance\Point by \LengthOfStack
+ \global\count\Point=\ItemSTATUS
+ \Point=\NumStack
+ \advance\Point by \LengthOfStack
+ \global\count\Point=\ItemNUMBER
+ \Point=\TypeStack
+ \advance\Point by \LengthOfStack
+ \global\count\Point=\ItemTYPE
+ \Point\SpanStack
+ \advance\Point by \LengthOfStack
+ \global\count\Point=\ItemSPAN
+ \Point=\BoxStack
+ \advance\Point by \LengthOfStack
+ \global\setbox\Point=\vbox{\copy\ItemBOX}
+ \global\advance\LengthOfStack \@ne
+ \ifnum\ItemTYPE=\Figure % used in \MakePage
+ \global\MoreFigurestrue
+ \else
+ \global\MoreTablestrue
+ \fi
+ \fi
+}
+
+% item leaves stack
+% #1=physical position of the item to be removed
+
+\def\LeaveStack#1{%
+ {\Iteration=#1
+ \loop
+ \ifnum\Iteration<\LengthOfStack
+ \advance\Iteration \@ne
+ \GetItemSTATUS{\Iteration}
+ \advance\Point by \m@ne
+ \global\count\Point=\ItemSTATUS
+ \GetItemNUMBER{\Iteration}
+ \advance\Point by \m@ne
+ \global\count\Point=\ItemNUMBER
+ \GetItemTYPE{\Iteration}
+ \advance\Point by \m@ne
+ \global\count\Point=\ItemTYPE
+ \GetItemSPAN{\Iteration}
+ \advance\Point by \m@ne
+ \global\count\Point=\ItemSPAN
+ \GetItemBOX{\Iteration}
+ \advance\Point by \m@ne
+ \global\setbox\Point=\vbox{\copy\ItemBOX}
+ \repeat}
+ \global\advance\LengthOfStack by \m@ne
+}
+
+% clean stack
+% This routine scans through the stack and removes anything
+% that does not have STATUS=\InStack.
+
+\newif\ifStackNotClean
+
+\def\CleanStack{%
+ \StackNotCleantrue
+ {\Iteration=\z@
+ \loop
+ \ifStackNotClean
+ \GetItemSTATUS{\Iteration}
+ \ifnum\ItemSTATUS=\InStack
+ \advance\Iteration \@ne
+ \else
+ \LeaveStack{\Iteration}
+ \fi
+ \ifnum\LengthOfStack<\Iteration
+ \StackNotCleanfalse
+ \fi
+ \repeat}
+}
+
+% Find item.
+% This macro searches from the top to the bottom of the
+% stack for an item of a specified type and number.
+% #1=type, #2=number
+% If the specified item is found, then \StackPointer is set
+% to point to it, else \StackPointer=-1.
+% This routine is used to find the next figure or table
+% by number.
+
+\def\FindItem#1#2{%
+ \global\StackPointer=\m@ne % assume item isn't in stack for now
+ {\Iteration=\z@
+ \loop
+ \ifnum\Iteration<\LengthOfStack
+ \GetItemSTATUS{\Iteration}
+ \ifnum\ItemSTATUS=\InStack
+ \GetItemTYPE{\Iteration}
+ \ifnum\ItemTYPE=#1
+ \GetItemNUMBER{\Iteration}
+ \ifnum\ItemNUMBER=#2
+ \global\StackPointer=\Iteration
+ \Iteration=\LengthOfStack % terminate loop
+ \fi
+ \fi
+ \fi
+ \advance\Iteration \@ne
+ \repeat}
+}
+
+% Find next type
+% This macro searches from the top to the bottom of the stack
+% looking for the first item which has STATUS=\InStack.
+% If it is a figure then a figure is what will be considered
+% next by \MakePage else table.
+
+\def\FindNext{%
+ \global\StackPointer=\m@ne % assume stack is empty for now
+ {\Iteration=\z@
+ \loop
+ \ifnum\Iteration<\LengthOfStack
+ \GetItemSTATUS{\Iteration}
+ \ifnum\ItemSTATUS=\InStack
+ \GetItemTYPE{\Iteration}
+ \ifnum\ItemTYPE=\Figure
+ \ifMoreFigures
+ \global\NextItem=\Figure
+ \global\StackPointer=\Iteration
+ \Iteration=\LengthOfStack % terminate loop
+ \fi
+ \fi
+ \ifnum\ItemTYPE=\Table
+ \ifMoreTables
+ \global\NextItem=\Table
+ \global\StackPointer=\Iteration
+ \Iteration=\LengthOfStack % terminate loop
+ \fi
+ \fi
+ \fi
+ \advance\Iteration \@ne
+ \repeat}
+}
+
+% Change status
+% Macro to change the status of a specified item in stack.
+% #1=item, #2=new status
+
+\def\ChangeStatus#1#2{%
+ \Point=\StatusStack
+ \advance\Point by #1
+ \global\count\Point=#2
+}
+
+
+%--------------------------------------------------------%
+% MAKEPAGE %
+%--------------------------------------------------------%
+
+% This macro is called at the start of every new page
+% including the first. It scans through the stack picking
+% out items which should be placed on this page. It then
+% leaves space for the items to be placed later. The routine
+% terminates when either there is no room on the page to
+% fit the next figure or table, or there are no more items
+% in the stack.
+
+\def\Zone{\InZoneA}
+
+\ZoneBAdjust=\z@
+
+\def\MakePage{% allocate space on this page for stack items
+ \global\ZoneBSize=\PageHeight
+ \global\TextSize=\ZoneBSize
+ \global\ZoneAFullPagefalse
+ \global\topskip=\TextLeading
+ \MakePageInCompletetrue
+ \MoreFigurestrue
+ \MoreTablestrue
+ \FigInZoneBfalse
+ \FigInZoneCfalse
+ \TabInZoneBfalse
+ \TabInZoneCfalse
+ \global\FirstSingleItemtrue
+ \global\FirstZoneAtrue
+ \global\setbox\ZoneABOX=\box\VOIDBOX
+ \global\setbox\ZoneBBOX=\box\VOIDBOX
+ \global\setbox\ZoneCBOX=\box\VOIDBOX
+ \loop
+ \ifMakePageInComplete
+ \FindNext
+ \ifnum\StackPointer=\m@ne
+ \NextItem=\m@ne
+ \MoreFiguresfalse
+ \MoreTablesfalse
+ \fi
+ \ifnum\NextItem=\Figure
+ \FindItem{\Figure}{\NextFigure}
+ \ifnum\StackPointer=\m@ne \global\MoreFiguresfalse
+ \else
+ \GetItemSPAN{\StackPointer}
+ \ifnum\ItemSPAN=\Single \def\Zone{\InZoneB}\relax
+ \ifFigInZoneC \global\MoreFiguresfalse\fi
+ \else
+ \def\Zone{\InZoneA}
+ \ifFigInZoneB \def\Zone{\InZoneC}\fi
+ \fi
+ \fi
+ \ifMoreFigures\Print{}\FigureItems\fi
+ \fi
+\ifnum\NextItem=\Table
+ \FindItem{\Table}{\NextTable}
+ \ifnum\StackPointer=\m@ne \global\MoreTablesfalse
+ \else
+ \GetItemSPAN{\StackPointer}
+ \ifnum\ItemSPAN=\Single\relax
+ \ifTabInZoneC \global\MoreTablesfalse\fi
+ \else
+ \def\Zone{\InZoneA}
+ \ifTabInZoneB \def\Zone{\InZoneC}\fi
+ \fi
+ \fi
+ \ifMoreTables\Print{}\TableItems\fi
+ \fi
+ \MakePageInCompletefalse % assume page is complete
+ \ifMoreFigures\MakePageInCompletetrue\fi
+ \ifMoreTables\MakePageInCompletetrue\fi
+ \repeat
+%\Print{TextSize=\the\TextSize}
+%\Print{ZoneBSize=\the\ZoneBSize}
+ \ifZoneAFullPage
+ \global\TextSize=\z@
+ \global\ZoneBSize=\z@
+ \global\vsize=\z@\relax
+ \global\topskip=\z@\relax
+ \vbox to \z@{\vss}
+ \eject
+ \else
+ \global\advance\ZoneBSize by -\ZoneBAdjust
+ \global\vsize=\ZoneBSize
+ \global\hsize=\ColumnWidth
+ \global\ZoneBAdjust=\z@
+ \ifdim\TextSize<23pt
+ \Warn{}
+ \Warn{* Making column fall short: TextSize=\the\TextSize *}
+ \vskip-\lastskip\eject\fi
+ \fi
+}
+
+\def\MakeRightCol{% allocate space for the right column of text
+ \global\TextSize=\ZoneBSize
+ \MakePageInCompletetrue
+ \MoreFigurestrue
+ \MoreTablestrue
+ \global\FirstSingleItemtrue
+ \global\setbox\ZoneBBOX=\box\VOIDBOX
+ \def\Zone{\InZoneB}
+ \loop
+ \ifMakePageInComplete
+ \FindNext
+ \ifnum\StackPointer=\m@ne
+ \NextItem=\m@ne
+ \MoreFiguresfalse
+ \MoreTablesfalse
+ \fi
+ \ifnum\NextItem=\Figure
+ \FindItem{\Figure}{\NextFigure}
+ \ifnum\StackPointer=\m@ne \MoreFiguresfalse
+ \else
+ \GetItemSPAN{\StackPointer}
+ \ifnum\ItemSPAN=\Double\relax
+ \MoreFiguresfalse\fi
+ \fi
+ \ifMoreFigures\Print{}\FigureItems\fi
+ \fi
+ \ifnum\NextItem=\Table
+ \FindItem{\Table}{\NextTable}
+ \ifnum\StackPointer=\m@ne \MoreTablesfalse
+ \else
+ \GetItemSPAN{\StackPointer}
+ \ifnum\ItemSPAN=\Double\relax
+ \MoreTablesfalse\fi
+ \fi
+ \ifMoreTables\Print{}\TableItems\fi
+ \fi
+ \MakePageInCompletefalse % assume page is complete
+ \ifMoreFigures\MakePageInCompletetrue\fi
+ \ifMoreTables\MakePageInCompletetrue\fi
+ \repeat
+ \ifZoneAFullPage
+ \global\TextSize=\z@
+ \global\ZoneBSize=\z@
+ \global\vsize=\z@\relax
+ \global\topskip=\z@\relax
+ \vbox to \z@{\vss}
+ \eject
+ \else
+ \global\vsize=\ZoneBSize
+ \global\hsize=\ColumnWidth
+ \ifdim\TextSize<23pt
+ \Warn{}
+ \Warn{* Making column fall short: TextSize=\the\TextSize *}
+ \vskip-\lastskip\eject\fi
+\fi
+}
+
+\def\FigureItems{% Stack pointer points to next figure
+ \Print{Considering...}
+ \ShowItem{\StackPointer}
+ \GetItemBOX{\StackPointer} % auto calculates ItemSIZE
+ \GetItemSPAN{\StackPointer}
+ \CheckFitInZone % check to see if item fits
+ \ifnum\ItemFits=\Yes
+ \ifnum\ItemSPAN=\Single
+ \ChangeStatus{\StackPointer}{\InZoneB} % flag to be output
+ \global\FigInZoneBtrue
+ \ifFirstSingleItem
+ \hbox{}\vskip-\BodgeHeight
+ \global\advance\ItemSIZE by \TextLeading
+ \fi
+ \unvbox\ItemBOX\ItemSep
+ \global\FirstSingleItemfalse
+ \global\advance\TextSize by -\ItemSIZE% allocate space
+ \global\advance\TextSize by -\TextLeading
+ \else
+ \ifFirstZoneA
+ \global\advance\ItemSIZE by \TextLeading
+ \global\FirstZoneAfalse\fi
+ \global\advance\TextSize by -\ItemSIZE
+ \global\advance\TextSize by -\TextLeading
+ \global\advance\ZoneBSize by -\ItemSIZE
+ \global\advance\ZoneBSize by -\TextLeading
+ \ifFigInZoneB\relax
+ \else
+ \ifdim\TextSize<3\TextLeading
+ \global\ZoneAFullPagetrue
+ \fi
+ \fi
+ \ChangeStatus{\StackPointer}{\Zone}
+ \ifnum\Zone=\InZoneC \global\FigInZoneCtrue\fi
+ \fi
+ \Print{TextSize=\the\TextSize}
+ \Print{ZoneBSize=\the\ZoneBSize}
+ \global\advance\NextFigure \@ne
+ \Print{This figure has been placed.}
+ \else
+ \Print{No space available for this figure...holding over.}
+ \Print{}
+ \global\MoreFiguresfalse
+ \fi
+}
+
+\def\TableItems{% Stack pointer points to next table
+ \Print{Considering...}
+ \ShowItem{\StackPointer}
+ \GetItemBOX{\StackPointer} % auto calculates ItemSIZE
+ \GetItemSPAN{\StackPointer}
+ \CheckFitInZone % check to see of item fits in Zone
+ \ifnum\ItemFits=\Yes
+ \ifnum\ItemSPAN=\Single
+ \ChangeStatus{\StackPointer}{\InZoneB}
+ \global\TabInZoneBtrue
+ \ifFirstSingleItem
+ \hbox{}\vskip-\BodgeHeight
+ \global\advance\ItemSIZE by \TextLeading
+ \fi
+ \unvbox\ItemBOX\ItemSep
+ \global\FirstSingleItemfalse
+ \global\advance\TextSize by -\ItemSIZE
+ \global\advance\TextSize by -\TextLeading
+ \else
+ \ifFirstZoneA
+ \global\advance\ItemSIZE by \TextLeading
+ \global\FirstZoneAfalse\fi
+ \global\advance\TextSize by -\ItemSIZE
+ \global\advance\TextSize by -\TextLeading
+ \global\advance\ZoneBSize by -\ItemSIZE
+ \global\advance\ZoneBSize by -\TextLeading
+ \ifFigInZoneB\relax
+ \else
+ \ifdim\TextSize<3\TextLeading
+ \global\ZoneAFullPagetrue
+ \fi
+ \fi
+ \ChangeStatus{\StackPointer}{\Zone}
+ \ifnum\Zone=\InZoneC \global\TabInZoneCtrue\fi
+ \fi
+% \Print{TextSize=\the\TextSize}
+% \Print{ZoneBSize=\the\ZoneBSize}
+ \global\advance\NextTable \@ne
+ \Print{This table has been placed.}
+ \else
+ \Print{No space available for this table...holding over.}
+ \Print{}
+ \global\MoreTablesfalse
+ \fi
+}
+
+% These macros check to see if an item of ItemSIZE will
+% fit in a particular zone. If it will, then ItemFits
+% will be set true else false.
+
+\def\CheckFitInZone{%
+{\advance\TextSize by -\ItemSIZE
+ \advance\TextSize by -\TextLeading
+ \ifFirstSingleItem
+ \advance\TextSize by \TextLeading
+ \fi
+ \ifnum\Zone=\InZoneA\relax
+ \else \advance\TextSize by -\ZoneBAdjust
+ \fi
+ \ifdim\TextSize<3\TextLeading \global\ItemFits=\No
+ \else \global\ItemFits=\Yes\fi}
+}
+
+\def\BeginOpening{%
+ % start 9pt a.s.a.p. so that \New.. commands get a chance to init.
+ \ninepoint
+ \thispagestyle{titlepage}%
+ \global\setbox\ItemBOX=\vbox\bgroup%
+ \hsize=\PageWidth%
+ \hrule height \z@
+ \ifsinglecol\vskip 6pt\fi % Bodge, to get same pos. as two-column!
+}
+
+\let\begintopmatter=\BeginOpening % alias for \BeginOpening
+
+\def\EndOpening{%
+ \One% 1 line fixed space below opening
+ \egroup
+ \ifsinglecol
+ \box\ItemBOX%
+ \vskip\TextLeading plus 2\TextLeading% var. space: min 1, max 3 lines
+ \@noafterindent
+ \else
+ \ItemNUMBER=\z@%
+ \ItemTYPE=\Figure
+ \ItemSPAN=\Double
+ \ItemSTATUS=\InStack
+ \JoinStack
+ \fi
+}
+
+
+% Figures
+
+\newif\if@here \@herefalse
+
+\def\no@float{\global\@heretrue}
+\let\nofloat=\relax % only enabled for one column
+
+\def\beginfigure{%
+ \@ifstar{\global\@dfloattrue \@bfigure}{\global\@dfloatfalse \@bfigure}%
+}
+
+\def\@bfigure#1{%
+ \par
+ \if@dfloat
+ \ItemSPAN=\Double
+ \TEMPDIMEN=\PageWidth
+ \else
+ \ItemSPAN=\Single
+ \TEMPDIMEN=\ColumnWidth
+ \fi
+ \ifsinglecol
+ \TEMPDIMEN=\PageWidth
+ \else
+ \ItemSTATUS=\InStack
+ \ItemNUMBER=#1%
+ \ItemTYPE=\Figure
+ \fi
+ \bgroup
+ \hsize=\TEMPDIMEN
+ \global\setbox\ItemBOX=\vbox\bgroup
+ \eightpoint\nostb@ls{10pt}%
+ \let\caption=\fig@caption
+ \ifsinglecol \let\nofloat=\no@float\fi
+}
+
+\def\fig@caption#1{%
+ \vskip 5.5pt plus 6pt%
+ \bgroup % grouping and size change needed for plate pages
+ \eightpoint\nostb@ls{10pt}%
+ \setbox\TEMPBOX=\hbox{#1}%
+ \ifdim\wd\TEMPBOX>\TEMPDIMEN
+ \noindent \unhbox\TEMPBOX\par
+ \else
+ \hbox to \hsize{\hfil\unhbox\TEMPBOX\hfil}%
+ \fi
+ \egroup
+}
+
+\def\endfigure{%
+ \par\egroup % end \vbox
+ \egroup
+ \ifsinglecol
+ \if@here \midinsert\global\@herefalse\else \topinsert\fi
+ \unvbox\ItemBOX
+ \endinsert
+ \else
+ \JoinStack
+ \Print{Processing source for figure \the\ItemNUMBER}%
+ \fi
+}
+
+
+% Tables
+
+\newbox\tab@cap@box
+\def\tab@caption#1{\global\setbox\tab@cap@box=\hbox{#1\par}}
+
+\newtoks\tab@txt@toks
+\long\def\tab@txt#1{\global\tab@txt@toks={#1}\global\table@txttrue}
+
+\newif\iftable@txt \table@txtfalse
+\newif\if@dfloat \@dfloatfalse
+
+\def\begintable{%
+ \@ifstar{\global\@dfloattrue \@btable}{\global\@dfloatfalse \@btable}%
+}
+
+\def\@btable#1{%
+ \par
+ \if@dfloat
+ \ItemSPAN=\Double
+ \TEMPDIMEN=\PageWidth
+ \else
+ \ItemSPAN=\Single
+ \TEMPDIMEN=\ColumnWidth
+ \fi
+ \ifsinglecol
+ \TEMPDIMEN=\PageWidth
+ \else
+ \ItemSTATUS=\InStack
+ \ItemNUMBER=#1%
+ \ItemTYPE=\Table
+ \fi
+ \bgroup
+ \eightpoint\nostb@ls{10pt}%
+ \global\setbox\ItemBOX=\vbox\bgroup
+ \let\caption=\tab@caption
+ \let\tabletext=\tab@txt
+ \ifsinglecol \let\nofloat=\no@float\fi
+}
+
+\def\endtable{%
+ \par\egroup % end \vbox
+ \egroup
+ \setbox\TEMPBOX=\hbox to \TEMPDIMEN{%
+ \eightpoint\nostb@ls{10pt}%
+ \hss
+ \vbox{%
+ \hsize=\wd\ItemBOX
+ \ifvoid\tab@cap@box
+ \else
+ \noindent\unhbox\tab@cap@box
+ \vskip 5.5pt plus 6pt%
+ \fi
+ \box\ItemBOX
+ \iftable@txt
+ \vskip 10pt%
+ \noindent\the\tab@txt@toks
+ \global\table@txtfalse
+ \fi
+ }%
+ \hss
+ }%
+ \ifsinglecol
+ \if@here \midinsert\global\@herefalse\else \topinsert\fi
+ \box\TEMPBOX
+ \endinsert
+ \else
+ \global\setbox\ItemBOX=\box\TEMPBOX
+ \JoinStack
+ \Print{Processing source for table \the\ItemNUMBER}%
+ \fi
+}
+
+
+\def\UnloadZoneA{%
+\FirstZoneAtrue
+ \Iteration=\z@
+ \loop
+ \ifnum\Iteration<\LengthOfStack
+ \GetItemSTATUS{\Iteration}
+ \ifnum\ItemSTATUS=\InZoneA
+ \GetItemBOX{\Iteration}
+ \ifFirstZoneA \vbox to \BodgeHeight{\vfil}%
+ \FirstZoneAfalse\fi
+ \unvbox\ItemBOX\ItemSep
+ \LeaveStack{\Iteration}
+ \else
+ \advance\Iteration \@ne
+ \fi
+ \repeat
+}
+
+\def\UnloadZoneC{%
+\Iteration=\z@
+ \loop
+ \ifnum\Iteration<\LengthOfStack
+ \GetItemSTATUS{\Iteration}
+ \ifnum\ItemSTATUS=\InZoneC
+ \GetItemBOX{\Iteration}
+ \ItemSep\unvbox\ItemBOX
+ \LeaveStack{\Iteration}
+ \else
+ \advance\Iteration \@ne
+ \fi
+ \repeat
+}
+
+
+%--------------------------------------------------------%
+% DIAGNOSTICS %
+%--------------------------------------------------------%
+
+\def\ShowItem#1{% Show details of on item entry in stack
+ {\GetItemAll{#1}
+ \Print{\the#1:
+ {TYPE=\ifnum\ItemTYPE=\Figure Figure\else Table\fi}
+ {NUMBER=\the\ItemNUMBER}
+ {SPAN=\ifnum\ItemSPAN=\Single Single\else Double\fi}
+ {SIZE=\the\ItemSIZE}}}
+}
+
+\def\ShowStack{%
+ \Print{}
+ \Print{LengthOfStack = \the\LengthOfStack}
+ \ifnum\LengthOfStack=\z@ \Print{Stack is empty}\fi
+ \Iteration=\z@
+ \loop
+ \ifnum\Iteration<\LengthOfStack
+ \ShowItem{\Iteration}
+ \advance\Iteration \@ne
+ \repeat
+}
+
+\def\B#1#2{%
+\hbox{\vrule\kern-0.4pt\vbox to #2{%
+\hrule width #1\vfill\hrule}\kern-0.4pt\vrule}
+}
+
+
+%-------------------------------------------------------%
+% SINGLE COLUMN OUTPUT ROUTINE %
+%-------------------------------------------------------%
+
+\newif\ifsinglecol \singlecolfalse
+
+\def\onecolumn{%
+ \global\output={\singlecoloutput}%
+ \global\hsize=\PageWidth
+ \global\vsize=\PageHeight
+ \global\ColumnWidth=\hsize
+ \global\TextLeading=12pt
+ \global\Leading=12
+ \global\singlecoltrue
+ \global\let\onecolumn=\relax% stop them using \onecolumn again
+ \global\let\footnote=\sing@footnote% enable footnotes
+ \global\let\vfootnote=\sing@vfootnote
+ \ninepoint % reset \baselineskip after leading change
+ \message{(Single column)}%
+}
+
+\def\singlecoloutput{%
+ \shipout\vbox{\PageHead\pagebody\PageFoot}%
+ \advancepageno
+%
+ \ifplate@page
+ \shipout\vbox{%
+ \sp@pagetrue
+ \def\sp@type{plate}%
+ \global\plate@pagefalse
+ \PageHead\vbox to \PageHeight{\unvbox\plt@box\vfil}\PageFoot%
+ }%
+ \message{[plate]}%
+ \advancepageno
+ \fi
+%
+ \ifnum\outputpenalty>-\@MM \else\dosupereject\fi%
+}
+
+\def\ItemSep{\vskip\ItemSepamount\relax}
+
+\def\ItemSepbreak{\par\ifdim\lastskip<\ItemSepamount
+ \removelastskip\penalty-200\ItemSep\fi%
+}
+
+% Modify plain's \endinsert so that the mn's spacing is used
+
+\let\@@endinsert=\endinsert % save plain's original \endinsert
+
+\def\endinsert{\egroup % finish the \vbox
+ \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ \advance\dimen@12\p@
+ \advance\dimen@\pagetotal \advance\dimen@-\pageshrink
+ \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi
+ \if@mid \ItemSep\box\z@\ItemSepbreak
+ \else\insert\topins{\penalty100 % floating insertion
+ \splittopskip\z@skip
+ \splitmaxdepth\maxdimen \floatingpenalty\z@
+ \ifp@ge \dimen@\dp\z@
+ \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero
+ \else \box\z@\nobreak\ItemSep\fi}\fi\endgroup%
+}
+
+
+% Footnotes (only enabled in single column)
+
+\def\gobbleone#1{}
+\def\gobbletwo#1#2{}
+\let\footnote=\gobbletwo % Gobble footnote's unless enabled by \onecolumn
+\let\vfootnote=\gobbleone
+
+\def\sing@footnote#1{\let\@sf\empty % parameter #2 (the text) is read later
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
+ \hbox{$^{\hbox{\eightpoint #1}}$}\@sf\sing@vfootnote{#1}%
+}
+
+\def\sing@vfootnote#1{\insert\footins\bgroup\eightpoint\b@ls{9pt}%
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox % top baseline for broken footnotes
+ \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
+ \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
+ \noindent $^{\scriptstyle\hbox{#1}}$\hskip 4pt%
+ \footstrut\futurelet\next\fo@t%
+}
+
+% Kill footnote rule
+\def\footnoterule{\kern-3\p@ \hrule height \z@ \kern 3\p@}
+
+\skip\footins=19.5pt plus 12pt minus 1pt
+\count\footins=1000
+\dimen\footins=\maxdimen
+
+
+% Landscape
+
+\def\landscape{%
+ \global\TEMPDIMEN=\PageWidth
+ \global\PageWidth=\PageHeight
+ \global\PageHeight=\TEMPDIMEN
+ \global\let\landscape=\relax% stop them using \landscape again.
+ \onecolumn
+ \message{(landscape)}%
+ \raggedbottom
+}
+
+
+%-------------------------------------------------------%
+% TWO COLUMN OUTPUT ROUTINE %
+%-------------------------------------------------------%
+
+\output{%
+ \ifLeftCOL
+ \global\setbox\LeftBOX=\vbox to \ZoneBSize{\box255\unvbox\ZoneBBOX}%
+ \global\LeftCOLfalse
+ \MakeRightCol
+ \else
+ \setbox\RightBOX=\vbox to \ZoneBSize{\box255\unvbox\ZoneBBOX}%
+ \setbox\MidBOX=\hbox{\box\LeftBOX\hskip\ColumnGap\box\RightBOX}%
+ \setbox\PageBOX=\vbox to \PageHeight{%
+ \UnloadZoneA\box\MidBOX\UnloadZoneC}%
+ \shipout\vbox{\PageHead\box\PageBOX\PageFoot}%
+ \advancepageno
+%
+ \ifplate@page
+ \shipout\vbox{%
+ \sp@pagetrue
+ \def\sp@type{plate}%
+ \global\plate@pagefalse
+ \PageHead\vbox to \PageHeight{\unvbox\plt@box\vfil}\PageFoot%
+ }%
+ \message{[plate]}%
+ \advancepageno
+ \fi
+%
+ \global\LeftCOLtrue
+ \CleanStack
+ \MakePage
+ \fi
+}
+
+
+% Startup message
+
+\Warn{\start@mess}
+
+\newif\ifCUPmtplainloaded % for use in documents
+\ifprod@font
+ \global\CUPmtplainloadedtrue
+\fi
+
+\def\mnmacrosloaded{} % so articles can see if a format file has been used.
+
+\catcode `\@=12 % @ signs are non-letters
+
+% \dump
+
+% end of mn.tex