diff -r 6a7317665868 -r 33de88ae7b62 pnas/pnastwo.cls --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pnas/pnastwo.cls Sun Oct 24 22:03:42 2010 -0700 @@ -0,0 +1,3275 @@ +\def\currversion{April 15, 2008} + + %*****************************************************************% + %* *% + %* Prepared by Amy Hendrickson, TeXnology Inc. *% + %* Copyright (C) 2004 by Amy Hendrickson, TeXnology Inc., *% + %* All rights reserved. *% + %* *% + %* TeXnology Inc.: 617 738-8029 *% + %* amyh@texnology.com *% + %* www.texnology.com *% + %* *% + %* For assistance, please contact the PNAS Editorial Office: *% + %* 202-334-2679 *% + %* pnas@nas.edu *% + %* *% + %*****************************************************************% + +\typeout{^^J^^J +Two Column Journal Style for the^^J +Proceedings of the National Academy of Science +^^J +Written by Amy Hendrickson, TeXnology, Inc., 9/04^^J +^^J +This version is dated \currversion^^J^^J} + +\ProvidesClass{pnastwo} +\newcommand\@ptsize{} +\newif\if@restonecol +\newif\if@titlepage +\@titlepagefalse +\if@compatibility\else +\DeclareOption{a4paper} + {\setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5paper} + {\setlength\paperheight {210mm}% + \setlength\paperwidth {148mm}} +\DeclareOption{b5paper} + {\setlength\paperheight {250mm}% + \setlength\paperwidth {176mm}} +\DeclareOption{letterpaper} + {\setlength\paperheight {11in}% + \setlength\paperwidth {8.5in}} +\DeclareOption{legalpaper} + {\setlength\paperheight {14in}% + \setlength\paperwidth {8.5in}} +\DeclareOption{executivepaper} + {\setlength\paperheight {10.5in}% + \setlength\paperwidth {7.25in}} +\DeclareOption{landscape} + {\setlength\@tempdima {\paperheight}% + \setlength\paperheight {\paperwidth}% + \setlength\paperwidth {\@tempdima}} +\fi +\if@compatibility + \renewcommand\@ptsize{0} +\else +\DeclareOption{10pt}{\renewcommand\@ptsize{0}} +\fi +\DeclareOption{11pt}{\renewcommand\@ptsize{1}} +\DeclareOption{12pt}{\renewcommand\@ptsize{2}} +\if@compatibility\else +\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} +\fi +\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\if@compatibility\else +\DeclareOption{final}{\setlength\overfullrule{0pt}} +\fi +\DeclareOption{titlepage}{\@titlepagetrue} +\if@compatibility\else +\DeclareOption{notitlepage}{\@titlepagefalse} +\fi +\if@compatibility\else +\DeclareOption{onecolumn}{\@twocolumnfalse} +\fi +\DeclareOption{twocolumn}{\@twocolumntrue} +\DeclareOption{leqno}{\input{leqno.clo}} +\DeclareOption{fleqn}{\input{fleqn.clo}} +\DeclareOption{openbib}{% + \AtEndOfPackage{% + \renewcommand\@openbib@code{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% + \renewcommand\newblock{\par}}% +} +\ExecuteOptions{letterpaper,twoside,onecolumn,final} +\ProcessOptions +%% size10.clo ==>> +\renewcommand\normalsize{% + \@setfontsize\normalsize\@ixpt\@xpt + \abovedisplayskip 8\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \topsep 0\p@ + \parsep 0\p@ + \let\@listi\@listI} +\normalsize + \topsep 0\p@ + \parsep 0\p@ + +\newcommand\small{% + \@setfontsize\small\@viiipt{9}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 0\p@ + \parsep 0\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\newcommand\footnotesize{% + \@setfontsize\footnotesize\@vipt{7}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\newcommand\scriptsize{\@setfontsize\scriptsize\@vpt\@viipt} +\newcommand\tiny{\@setfontsize\tiny\@vpt\@vipt} +\newcommand\large{\@setfontsize\large\@xiipt{14}} +\newcommand\Large{\@setfontsize\Large\@xivpt{18}} +\newcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}} +\newcommand\huge{\@setfontsize\huge\@xxpt{25}} +\newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}} +\if@twocolumn + \setlength\parindent{1em} +\else + \setlength\parindent{15\p@} +\fi +\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@} +\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@} +\setlength\headheight{12\p@} +\setlength\headsep {25\p@} +\setlength\topskip {10\p@} +\setlength\footskip{20\p@} +\if@compatibility \setlength\maxdepth{4\p@} \else +\setlength\maxdepth{.5\topskip} \fi +\if@compatibility + \if@twocolumn + \setlength\textwidth{410\p@} + \else + \setlength\textwidth{345\p@} + \fi +\else + \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-2in} + \setlength\@tempdimb{345\p@} + \if@twocolumn + \ifdim\@tempdima>2\@tempdimb\relax + \setlength\textwidth{2\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \else + \ifdim\@tempdima>\@tempdimb\relax + \setlength\textwidth{\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \fi +\fi +\if@compatibility\else + \@settopoint\textwidth +\fi +\if@compatibility + \setlength\textheight{43\baselineskip} +\else + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-2in} + \addtolength\@tempdima{-1.5in} + \divide\@tempdima\baselineskip + \@tempcnta=\@tempdima + \setlength\textheight{\@tempcnta\baselineskip} +\fi +\addtolength\textheight{\topskip} +\if@twocolumn + \setlength\marginparsep {10\p@} +\else + \setlength\marginparsep{11\p@} +\fi +\setlength\marginparpush{5\p@} +\if@compatibility + \if@twoside + \setlength\oddsidemargin {44\p@} + \setlength\evensidemargin {82\p@} + \setlength\marginparwidth {107\p@} + \else + \setlength\oddsidemargin {63\p@} + \setlength\evensidemargin {63\p@} + \setlength\marginparwidth {90\p@} + \fi + \if@twocolumn + \setlength\oddsidemargin {30\p@} + \setlength\evensidemargin {30\p@} + \setlength\marginparwidth {48\p@} + \fi +\else + \if@twoside + \setlength\@tempdima {\paperwidth} + \addtolength\@tempdima {-\textwidth} + \setlength\oddsidemargin {.4\@tempdima} + \addtolength\oddsidemargin {-1in} + \setlength\marginparwidth {.6\@tempdima} + \addtolength\marginparwidth {-\marginparsep} + \addtolength\marginparwidth {-0.4in} + \else + \setlength\@tempdima {\paperwidth} + \addtolength\@tempdima {-\textwidth} + \setlength\oddsidemargin {.5\@tempdima} + \addtolength\oddsidemargin {-1in} + \setlength\marginparwidth {.5\@tempdima} + \addtolength\marginparwidth {-\marginparsep} + \addtolength\marginparwidth {-0.4in} + \addtolength\marginparwidth {-.4in} + \fi + \ifdim \marginparwidth >2in + \setlength\marginparwidth{2in} + \fi + \@settopoint\oddsidemargin + \@settopoint\marginparwidth + \setlength\evensidemargin {\paperwidth} + \addtolength\evensidemargin{-2in} + \addtolength\evensidemargin{-\textwidth} + \addtolength\evensidemargin{-\oddsidemargin} + \@settopoint\evensidemargin +\fi +\if@compatibility + \setlength\topmargin{27pt} +\else + \setlength\topmargin{\paperheight} + \addtolength\topmargin{-2in} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} + \addtolength\topmargin{-\textheight} + \addtolength\topmargin{-\footskip} % this might be wrong! + \addtolength\topmargin{-.5\topmargin} + \@settopoint\topmargin +\fi +\setlength\footnotesep{6.65\p@} +\setlength{\skip\footins}{19\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{8\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{8\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +\setlength\partopsep{2\p@ \@plus 1\p@ \@minus 1\p@} +\def\@listi{\leftmargin\leftmargini + \parsep 1sp%4\p@ \@plus2\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep1sp%4\p@ \@plus2\p@ \@minus\p@ +} +\let\@listI\@listi +\@listi + +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep 2\p@ \@plus\p@\@minus\p@ + \parsep \z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep \topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} + + +%% <<== size10.clo + +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} +\renewcommand\baselinestretch{} +\setlength\parskip{0\p@ \@plus \p@} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\setcounter{topnumber}{2} +\renewcommand\topfraction{.7} +\setcounter{bottomnumber}{1} +\renewcommand\bottomfraction{.3} +\setcounter{totalnumber}{3} +\renewcommand\textfraction{.2} +\renewcommand\floatpagefraction{.5} +\setcounter{dbltopnumber}{2} +\renewcommand\dbltopfraction{.7} +\renewcommand\dblfloatpagefraction{.5} + +\newif\iftitlepage + \def\ps@headings{% + \let\@evenhead\relax + \def\@oddhead{\hfill\rlap{\hskip14pt\vtop to 0pt{\vskip-1pt\makesidesquares +\vss}}}% +\def\@oddfoot{{\dospecialaccents% +\iftitlepage\global\titlepagefalse% +\footlinefont +\ifodd\c@page +\hbox to \textwidth{\footlinefont \let\it\footlineit +\theurl\hfill\footlinefont PNAS\hskip6pt \vrule depth 2pt\hskip6pt +{\foliofont\theissuedate}\hskip6pt\vrule\hskip6pt\thevolume\hskip6pt +\vrule\hskip6pt\theissuenumber\hskip6pt \vrule\hskip6pt +\the\c@page{\footlineit--}\expandafter\ifx\csname +lastpage\endcsname\relax ??\else\lastpage\fi}% +\else +\hbox to \textwidth{\footlinefont \let\it\footlineit +{\foliofont\the\c@page{\footlineit--}\expandafter\ifx\csname +lastpage\endcsname\relax ??\else\lastpage\fi}\hskip6pt +\vrule depth 2pt\hskip6pt PNAS\hskip6pt +\vrule\hskip6pt{\foliofont\theissuedate}\hskip6pt\vrule\hskip6pt +\thevolume\hskip6pt\vrule\hskip6pt\theissuenumber\hfill +\theurl}% +\fi\else% +\ifodd\c@page +\hbox to\textwidth{{\let\it\footlineit\footlinefont\thefootlineauthor}\hfill +\footlinefont PNAS\hskip6pt\vrule depth 2pt\hskip6pt{\foliofont\theissuedate}% +\hskip6pt\vrule depth2pt\hskip6pt\thevolume\hskip6pt\vrule depth 2pt\hskip6pt\theissuenumber\hskip6pt\vrule\hskip6pt{\foliofont\the\c@page}}% +\else% +\hbox to\textwidth{\let\it\footlineit\footlinefont{\foliofont \the\c@page}% +\hskip6pt\vrule depth 2pt height 6pt\hskip6pt\theurl\hfill\thefootlineauthor}\fi\fi}} +\let\@evenfoot\@oddfoot +% + \let\@mkboth\markboth + \def\sectionmark##1{% + \markboth {\MakeUppercase{% + \ifnum \c@secnumdepth >\z@ + \thesection\quad + \fi + ##1}}{}}% + \def\subsectionmark##1{% + \markright {% + \ifnum \c@secnumdepth >\@ne + \thesubsection\quad + \fi + ##1}}} + + +\newcount\affilcount +\newcount\saveaffilcount +\newcount\c@fnaffilcount +\def\affil#1#2{\normalsize\affilfont\ \affilcount=#1 +\ifnum\affilcount>\saveaffilcount\global\saveaffilcount\affilcount\fi +\expandafter\ifx\csname affil\the\affilcount\endcsname\relax +\global\advance\c@footnote by1 +\expandafter\xdef\csname affilsymb\the\affilcount\endcsname% +{\the\c@footnote}{$^{\@fnsymbol\c@footnote}$}% +\expandafter\gdef\csname affil\the\affilcount\endcsname{#2}\else +$^{\expandafter\@fnsymbol\csname affilsymb\the\affilcount\endcsname}$ +\fi\authorfont} + +\newcommand\maketitle{\par +\global\titlepagetrue + \begingroup +\dospecialaccents +\parindent=0pt +\def\and{ and } + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\parindent0pt\noindent + \@textsuperscript{\normalfont\@thefnmark}##1}% + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle +\@thanks +% according to sample, Dec 2007, copyright no longer wanted here +% \renewcommand\thefootnote{}% +% \footnotetext{\vrule height 8pt width0pt\copyright \thecopyrightyear\ by The % National Academy of Sciences of the USA} + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\@contributor\@empty + \global\let\title\relax + \global\let\date\relax + \global\let\and\relax +} +\def\@maketitle{% +\global\firsttimetrue +%% To get equation numbers in square brackets and bold +\gdef\tagform@##1{\maketag@@@{\bf[\hskip1pt\ignorespaces##1\unskip\@@italiccorr\hskip1pt]}} +\gdef\@eqnnum{{\normalfont\bf \normalcolor [\hskip1pt\theequation\hskip1pt]}} + \newpage +\def\\ {\vskip1pt} + \let \footnote \thanks + {\hsize=\textwidth \raggedright +\noindent\huge\baselineskip= 24pt\titlefont \@title \par}% + \vskip6pt + {\normalsize\authorfont + \@author +\par +{\vskip4pt +\raggedright +\affilcount=0 +\footnotesize\affilfont +\loop \ifnum\affilcount< \saveaffilcount +\expandafter\ifx\csname affil\the\affilcount\endcsname\relax\else +$^{\expandafter\@fnsymbol\csname affilsymb\the\affilcount\endcsname}$% +\csname affil\the\affilcount\endcsname,\fi +\global\advance\affilcount by1 +\repeat\ifnum\saveaffilcount=1\else\ and \fi +$^{\expandafter\@fnsymbol\csname affilsymb\the\affilcount\endcsname}$% +\expandafter\csname affil\the\affilcount\endcsname +}}% + \vskip 4pt% + {\affilfont \@contributor}% + \par + \vskip 1.5em} + +\def\contributor#1{\def\@contributor{#1}} +\let\@contributor\relax + +\contributor{Submitted to Proceedings +of the National Academy of Sciences of the United States of America} + + + +\setcounter{secnumdepth}{3} +\newcounter {part} +\newcounter {section} +\newcounter {subsection}[section] +\newcounter {subsubsection}[subsection] +\newcounter {paragraph}[subsubsection] +\newcounter {subparagraph}[paragraph] +\renewcommand \thepart {\@Roman\c@part} +\renewcommand \thesection {\@arabic\c@section} +\renewcommand\thesubsection {\thesection.\@arabic\c@subsection} +\renewcommand\thesubsubsection{\thesubsection .\@arabic\c@subsubsection} +\renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph} +\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph} +\newcommand\part{% + \if@noskipsec \leavevmode \fi + \par + \addvspace{4ex}% + \@afterindentfalse + \secdef\@part\@spart} + +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{part}% + \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + {\parindent \z@ \raggedright + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >\m@ne + \Large\bfseries \partname~\thepart + \par\nobreak + \fi + \huge \bfseries #2% + \markboth{}{}\par}% + \nobreak + \vskip 3ex + \@afterheading} +\def\@spart#1{% + {\parindent \z@ \raggedright + \interlinepenalty \@M + \normalfont + \huge \bfseries #1\par}% + \nobreak + \vskip 3ex + \@afterheading} + +\def\@startsection#1#2#3#4#5#6{% + \if@noskipsec \leavevmode \fi + \par + \@tempskipa #4\relax + \@afterindenttrue + \ifdim \@tempskipa <\z@ + \@tempskipa -\@tempskipa \@afterindentfalse + \fi + \if@nobreak + \everypar{}% + \else + \addpenalty\@secpenalty\addvspace\@tempskipa + \fi + \@ifstar + {\@ssect{#3}{#4}{#5}{#6}}% + {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} + +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6{% + \@hangfrom{\hskip #3\relax\@svsec +}% + \interlinepenalty \@M #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}% + \else + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8\ifnum#2=2.\fi}% <<== + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}}% + \fi + \@xsect{#5}} + +\newcommand\section{\@startsection {section}{1}{\z@}% + {-10pt \@plus -1ex \@minus -.2ex}% + {.5ex }% + {\normalfont\Large\bfseries\sectionfont}} +\newcommand\subsection{\@startsection{subsection}{2}{\z@}% + {10pt\@plus 1ex \@minus .2ex}% + {-0.5ex \@plus .2ex}% + {\normalfont\large\bfseries\subsectionfont}} +\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\normalfont\normalsize\bfseries}} +\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus1ex \@minus.2ex}% + {-1em}% + {\normalfont\normalsize\bfseries}} +\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\normalfont\normalsize\bfseries}} + +\setlength\leftmargini {12pt} +\leftmargin \leftmargini +\setlength\leftmarginii {12pt} +\setlength\leftmarginiii {12pt} +\setlength\leftmarginiv {12pt} + +\if@twocolumn + \setlength\leftmarginv {.5em} + \setlength\leftmarginvi {.5em} +\else + \setlength\leftmarginv {1em} + \setlength\leftmarginvi {1em} +\fi +\setlength \labelsep {.5em} +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\renewcommand\theenumi{\@arabic\c@enumi} +\renewcommand\theenumii{\@alph\c@enumii} +\renewcommand\theenumiii{\@roman\c@enumiii} +\renewcommand\theenumiv{\@Alph\c@enumiv} +\newcommand\labelenumi{\theenumi.} +\newcommand\labelenumii{(\theenumii)} +\newcommand\labelenumiii{\theenumiii.} +\newcommand\labelenumiv{\theenumiv.} +\renewcommand\p@enumii{\theenumi} +\renewcommand\p@enumiii{\theenumi(\theenumii)} +\renewcommand\p@enumiv{\p@enumiii\theenumiii} +\newcommand\labelitemi{\raise1.5pt\llap{\small\textbullet\hskip2pt}} +\newcommand\labelitemii{\normalfont\bfseries \textendash} +\newcommand\labelitemiii{\textasteriskcentered} +\newcommand\labelitemiv{\textperiodcentered} +\newenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + {\endlist} +\newcommand*\descriptionlabel[1]{\hspace\labelsep + \normalfont\bfseries #1} + +\def\abstract{\bgroup +\parindent=0pt +\hsize=\columnwidth +\font\it\helveticaboldoblique at 8pt +\font\bf\helveticabold at 8pt +\def\textit##1{{\it ##1}} +\def\textbf##1{{\bf ##1}} +\small +\abstractfont\dospecialaccents} + +\def\endabstract{\vskip11pt +\egroup} + + + +\newenvironment{verse} + {\let\\\@centercr + \list{}{\itemsep \z@ + \itemindent -1.5em% + \listparindent\itemindent + \rightmargin \leftmargin + \advance\leftmargin 1.5em}% + \item\relax} + {\endlist} +\newenvironment{quotation} + {\list{}{\listparindent 1.5em% + \itemindent \listparindent + \rightmargin \leftmargin + \parsep \z@ \@plus\p@}% + \item\relax} + {\endlist} +\newenvironment{quote} + {\list{}{\rightmargin\leftmargin}% + \item\relax} + {\endlist} +\if@compatibility +\newenvironment{titlepage} + {% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \setcounter{page}\z@ + }% + {\if@restonecol\twocolumn \else \newpage \fi + } +\else +\newenvironment{titlepage} + {% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \setcounter{page}\@ne + }% + {\if@restonecol\twocolumn \else \newpage \fi + \if@twoside\else + \setcounter{page}\@ne + \fi + } +\fi +\newcommand\appendix{\par + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \gdef\thesection{\@Alph\c@section}} +\setlength\arraycolsep{5\p@} +\setlength\tabcolsep{6\p@} +\setlength\arrayrulewidth{.4\p@} +\setlength\doublerulesep{2\p@} +\setlength\tabbingsep{\labelsep} +\skip\@mpfootins = \skip\footins +\setlength\fboxsep{3\p@} +\setlength\fboxrule{.4\p@} +\renewcommand \theequation {\@arabic\c@equation} +\newcounter{figure} +\renewcommand \thefigure {\@arabic\c@figure} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename~\thefigure} +\newenvironment{figure} + {\@float{figure}} + {\end@float} +\newenvironment{figure*} + {\@dblfloat{figure}} + {\end@dblfloat} +\newcounter{table} +\renewcommand\thetable{\@arabic\c@table} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\tablename~\thetable} +\newenvironment{table} + {\@float{table}} + {\end@float} +\newenvironment{table*} + {\@dblfloat{table}} + {\end@dblfloat} + + +\newenvironment{xtable} + {\@dblfloat{table}} + {\end@dblfloat} +\newenvironment{xfigure} + {\@dblfloat{figure}} + {\end@dblfloat} + +\newlength\abovecaptionskip +\newlength\belowcaptionskip +\setlength\abovecaptionskip{2\p@} +\setlength\belowcaptionskip{4\p@} + +\long\def\@makecaption#1#2{% +\ifx\@captype\xtable +\let\currtabcaption\relax +\gdef\currtabcaption{ +\tabnumfont\relax #1. \tabtextfont\relax#2\par +\vskip\belowcaptionskip +} +\else + \vskip\abovecaptionskip + \sbox\@tempboxa{\fignumfont#1.\figtextfont\hskip.5em\relax #2}% + \ifdim \wd\@tempboxa >\hsize +\fignumfont\relax #1.\figtextfont\hskip.5em\relax#2\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi +\fi +} +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal} +\newcommand\@pnumwidth{1.55em} +\newcommand\@tocrmarg{2.55em} +\newcommand\@dotsep{4.5} +\setcounter{tocdepth}{3} +\newcommand\tableofcontents{% + \section*{\contentsname + \@mkboth{% + \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% + \@starttoc{toc}% + } +\newcommand*\l@part[2]{% + \ifnum \c@tocdepth >-2\relax + \addpenalty\@secpenalty + \addvspace{2.25em \@plus\p@}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + {\leavevmode + \large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par + \nobreak + \if@compatibility + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \fi + \endgroup + \fi} +\newcommand*\l@section[2]{% + \ifnum \c@tocdepth >\z@ + \addpenalty\@secpenalty + \addvspace{1.0em \@plus\p@}% + \setlength\@tempdima{1.5em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \bfseries + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \endgroup + \fi} +\newcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} +\newcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} +\newcommand*\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} +\newcommand*\l@subparagraph{\@dottedtocline{5}{10em}{5em}} +\newcommand\listoffigures{% + \section*{\listfigurename + \@mkboth{\MakeUppercase\listfigurename}% + {\MakeUppercase\listfigurename}}% + \@starttoc{lof}% + } +\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} +\newcommand\listoftables{% + \section*{\listtablename + \@mkboth{% + \MakeUppercase\listtablename}{\MakeUppercase\listtablename}}% + \@starttoc{lot}% + } +\let\l@table\l@figure +\newdimen\bibindent +\setlength\bibindent{1.5em} + +\newskip\bibskip +\bibskip=0pt plus 3pt +\newenvironment{thebibliography}[1] + {\endgroup\endtwocolumns\vskip24pt\twocolumns\begingroup +\def\@currenvir{thebibliography} +\let\savebibitem\bibitem +\def\bibitem{\vskip\bibskip\savebibitem} +\tiny\baselineskip=8pt\bibfont +\let\it\bibitfont +\let\bf\bibbffont +\let\em\bibitfont +\let\sc\bibfont +\def\textit##1{{\bibitfont ##1}} +\def\textbf##1{{\bibbffont ##1}} + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist +} +\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em} +\let\@openbib@code\@empty + +\renewcommand\footnoterule{% + \kern-3\p@ + \hrule\@width6pc%.4\columnwidth + \kern2.6\p@} +\newcommand\@makefntext[1]{% + \parindent 1em% + \noindent + \hb@xt@1.8em{\hss\@makefnmark}#1} +\newcommand\contentsname{Contents} +\newcommand\listfigurename{List of Figures} +\newcommand\listtablename{List of Tables} +\newcommand\refname{References} +\newcommand\indexname{Index} +\newcommand\figurename{Fig.} +\newcommand\tablename{Table} +\newcommand\partname{Part} +\newcommand\appendixname{Appendix} +\newcommand\abstractname{Abstract} +\def\today{\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\day, \number\year} +\setlength\columnsep{10\p@} +\setlength\columnseprule{0\p@} +\pagenumbering{arabic} +\if@twoside +\else + \raggedbottom +\fi +\if@twocolumn + \twocolumn + \sloppy + \flushbottom +\else + \onecolumn +\fi + +%%%%%%%%%%%%%%%%% +% Additions to article.cls for PNASONE ==>> +%%%%%%%%%%%%%%%%% +\hoffset-.25in +\pagestyle{headings} +\textwidth= 42.5pc +\textheight= 56.5pc + +\def\xrelax{\relax} + + +%%%%%%%%%% +%% Footnotes, endnotes + +\newcount\footnum +\newcount\savefootnum + +\def\notes{ +{\ifnum\footnum=0\else +\savefootnum=\footnum +\footnum=0 +\noindent\loop\ifnum\savefootnum>\footnum% +\global\advance\footnum by1\relax% +\csname foot\the\footnum\endcsname\relax% +\expandafter\gdef\csname foot\the\footnum\endcsname{\relax}\relax% +\repeat\global\footnum=0\relax\fi}} + + +\long\def\endnotes#1{\global\advance\footnum by 1\relax$^{\the\footnum}$% +\long\expandafter\gdef\csname foot\the\footnum\endcsname{% +\vbox{\footnotesize\everypar={\hskip-10pt\everypar={}} +\leftskip=10pt\relax +\noindent\hbox to10pt{\the\footnum.\hfill}{\def\@currentlabel{\the\footnum}% +#1\strut\vskip1sp}}\vskip1pt}} + +\def\endnotetext#1{\global\advance\footnum by 1\relax +\long\expandafter\gdef\csname foot\the\footnum\endcsname{% +\vtop{\footnotesize% +\leftskip=12pt\relax\parindent=-12pt +\indent\hbox to12pt{\the\footnum.\hfill}{#1\strut\vskip1sp}}\vskip1pt}} + +%\let\footnote\endnotes + + \setlength\oddsidemargin {0\p@} + \setlength\evensidemargin {0\p@} + + +\def\dropcap#1{\setbox1=\hbox{\dropcapfont\uppercase{#1}\hskip1pt} +\hangindent=\wd1 +\hangafter-2 +\noindent\llap{\vbox to0pt{\vskip-7pt\copy1\vss}}} + +%%% Theorem environment %%%%%%%%% + +%% added \theoremfont for theorem name and number + +\def\@begintheorem#1#2{\trivlist + \item[\hskip \labelsep{\theoremfont #1\ #2.}]\itshape} +\def\@opargbegintheorem#1#2#3{\trivlist + \item[\hskip \labelsep{\theoremfont #1\ #2.\ (#3)}]\itshape} +\def\@endtheorem{\endtrivlist} + +%%%%%% +%%Macros for Footline on titlepage + +\def\url#1{\def\theurl{#1}} +\def\issuedate#1{\def\theissuedate{#1}} +\def\copyrightyear#1{\def\thecopyrightyear{#1}} +\def\volume#1{\def\thevolume{#1}} +\def\issuenumber#1{\def\theissuenumber{#1}} +\def\footlineauthor#1{\def\thefootlineauthor{\let\it\footlineit#1}} + +\ps@headings + +%% References + +\def\@biblabel#1{#1.} + +%%% code to get text in tables to extend all the way to left and right +%%% of table + +\def\xtable{table} +\def\@array[#1]#2{\tabletextfont +\setbox\@arstrutbox=\hbox{\vrule + height\arraystretch \ht\strutbox + depth\arraystretch \dp\strutbox + width\z@}\@mkpream{#2}\edef\@preamble{\halign \noexpand\@halignto +\bgroup% +\tabskip\z@\@arstrut\@preamble +\ifx\@captype\xtable\hskip-\tabcolsep\fi%% <==== Changed +\tabskip\z@ \cr}% +\let\@startpbox\@@startpbox \let\@endpbox\@@endpbox% + \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi% + \bgroup\let\par\relax% + \let\@sharp##\let\protect\relax \lineskip\z@\baselineskip\z@\@preamble} + +%% new +\def\new@tabacol{\edef\@preamble{\@preamble\hskip0pt}} + +\def\@tabclassz{\ifcase \@lastchclass\@acolampacol% +\or \@ampacol \or + \or \or \@addamp \or \@acolampacol\or \@firstampfalse +\ifx\@captype\xtable \new@tabacol\else\@tabacol \fi% +\fi% +\edef\@preamble{\@preamble% + \ifcase \@chnum% + \hfil\ignorespaces\@sharp\unskip\hfil% + \or \ignorespaces\@sharp\unskip\hfil% + \or \hfil\hskip\z@ \ignorespaces\@sharp\unskip\fi}} + +\setcounter{secnumdepth}{0} + + \long\def\@makefntext#1{\parindent0pt\noindent + \@textsuperscript{\normalfont\@thefnmark}#1}% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% LaTeX Style for Multiple Columns with Floating Insertions %% +%% %% +%% Copyright 2004, Amy Hendrickson, TeXnology Inc. %% +%% All rights reserved %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%% +%%% Double column output routines, +%%% with single and double column insertions, +%%% to be positioned at page or column top, page or column bottom, page +%%% or column center, or full page floating insertion. +%%% This code was originally based on Frank Mittlebach's multicol.sty. +%%% The concept of how to balance columns is due to Donald Knuth. The +%%% way to integrate the changed output routine into the standard LaTeX +%%% output routine is due to Frank. +%%% The method of making the single and double column insertions and the +%%% changes in the output routines to accomodate these features are mine. +%%% A.H., August 2004 +%% + +\newskip\abovefigcaptionskip +\newskip\abovetabcaptionskip +\newskip\abovetableskip +\newif\ifcentermultiplelines +\newif\ifcentersingleline +\newif\ifcentersingletabline +\newif\iflineabovetabcaption +\newif\iflinebelowtabcaption +\newdimen\belowtabcaptionskip + +%% Parameters you can set: +\columnsep=16pt +\newdimen\saveparskip +\saveparskip=\parskip + +%% +\newdimen\captionskip %% space between caption and figure or table +\captionskip=0pt +%%% + +\newdimen\PushOneColTopFig +\newdimen\PushOneColBotFig + +\PushOneColTopFig=5.5pt %% push down from top of text page +\PushOneColBotFig=-4.5pt % + +%% +\newdimen\PushOneColTopTab +\newdimen\PushOneColBotTab + +\PushOneColTopTab=2.5pt %% push down from top of text page +\PushOneColBotTab=0pt %% push up from bottom of text page + +%% +\newdimen\PushTwoColTopFig +\newdimen\PushTwoColBotFig + +\PushTwoColTopFig=2.5pt %% push down from top of text page +\PushTwoColBotFig=1.5pt %% push up from bottom of text page + +%% +\newdimen\PushTwoColTopTab +\newdimen\PushTwoColBotTab + +\PushTwoColTopTab=1.5pt %% push down from top of text page +\PushTwoColBotTab=1.5pt %% push up from bottom of text page + +%% + +\newskip\intextfloatskip +\intextfloatskip=20pt %% Space between figure or table and text. + %% (Need to subtract 4pt to get what you want) + +%% Normal and Appendix Figure and Table Numbers + +\def\appthefigure{\Alph{section}\the\c@appfigure\theletter} +\def\appthetable{\Alph{section}\the\c@apptable\theletter} +\def\apptheplate{\Alph{section}\the\c@appplate\theletter} + +\newcount\c@appfigure +\newcount\c@apptable +\newcount\c@appplate + +%% <=== end of parameters you can set + +%% do one column at a time so that we can get single col +%% floats for first col. + +%%% New version of \@makecol that includes dbltopins and dblbotins, +%%% insertions that span both columns at the top and bottom of text page. + +%%% + +\def\new@makecol{\setbox\@outputbox + \vbox{\boxmaxdepth \maxdepth +\ifdim\ht\dbltopins<1pt\else\unvbox\dbltopins\fi + \unvbox\@cclv +\ifdim\ht\dblbotins<1pt\else\unvbox\dblbotins\fi% +\ifvoid\footins\else\vskip\skip\footins\footnoterule\unvbox\footins\fi\vss} +%\global\savefigandtabnumber\figandtabnumber +%\global\advance\savefigandtabnumber by 1 %% Because loop stops one short + %% of the total number of figs +\global\savedblfigandtabnumber\dblfigandtabnumber + \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats + \setbox\@outputbox\vbox to\@colht{\boxmaxdepth\maxdepth + \@texttop\dimen128=\dp\@outputbox\unvbox\@outputbox + \vskip-\dimen128\@textbottom}% + \global\maxdepth\@maxdepth} + +%% +\let\@makecol\new@makecol %% + +%% Default Latex output routine, to return to after balance columns +%% This should make it possible to capture the output routine of +%% any version of 2e as well as 2.09. ==>> + +\edef\curroutput{\the\output} +\let\latexoutput\curroutput + +%% table* and figure* outside two columns keep default definitions. + +\newif\ifnonewpage +\def\nonewpage{\global\nonewpagetrue} + +%% Begin twocolumns ==>> +\newdimen\checkforspace +\def\twocolumns{\par \penalty\z@ +\checkforspace=\pagegoal +\advance\checkforspace-\pagetotal +\advance\checkforspace-\ht\partialpage +\advance\checkforspace-\dp\partialpage +\advance\checkforspace by -2\ht\dbltopins +\advance\checkforspace by -2\dp\dbltopins +\advance\checkforspace by -2\ht\dblbotins +\advance\checkforspace by -2\dp\dblbotins +\ifdim\checkforspace<36pt\ifnonewpage\else\newpage\fi\fi +\begingroup +% +\expandafter\gdef\csname plate*\endcsname{\twocolplate} +\expandafter\gdef\csname endplate*\endcsname{\endtwocolfloat} +% +\expandafter\gdef\csname figure*\endcsname{\twocolfig} +\expandafter\gdef\csname endfigure*\endcsname{\endtwocolfloat} +% +\expandafter\gdef\csname table*\endcsname{\twocoltable} +\expandafter\gdef\csname endtable*\endcsname{\endtwocolfloat} +% +\let\figure\onecolfig +\let\plate\onecolplate +\let\table\onecoltable +% +\let\@makecol\new@makecol %% +%% Confines new def of \@makecol to +%% two column material, preserves normal topskip after twocolumns is +%% finished. +%% +\output={\global\setbox\partialpage=\vbox{\unvbox\@cclv}} +\vskip1sp %% +\eject + \vbadness10001 \hbadness5000 + \tolerance5000 +\parskip \saveparskip %plus .01pt % +%\ifjdraft +%\baselineskip=28pt\fi + \pretolerance\m@ne %keeps TeX from trying to make up paragraph + % without discretionary hyphens + \advance\@colroom-\ht\partialpage + \advance\@colroom-\dp\partialpage +\vsize=\@colroom +% Changed to \@colroom rather than 2\@colroom. Each column is output +% separately so we can find out if there are top or bottom inserts +% in first column. +%% + \hsize\textwidth \advance\hsize-\columnsep + \divide\hsize by 2 + \linewidth\hsize %% particular to LaTeX + \columnwidth=\hsize +%% OR, you can substitute these lines: +%\hsize=\mycolumnwidth +%\linewidth=\hsize +%% +%% Output: +% Set output to firstcolout, which checks to see if there are inserts +% then doubles the vsize and send material back into input stream, then +% sets the next output routine to \makeuppage +% +\output={\firstcolout} +\vskip2sp\ignorespaces} + + +\def\galleycolumns{\par \penalty\z@ +\checkforspace=\pagegoal +\advance\checkforspace-\pagetotal +\advance\checkforspace-\ht\partialpage +\advance\checkforspace-\dp\partialpage +\advance\checkforspace by -2\ht\dbltopins +\advance\checkforspace by -2\dp\dbltopins +\advance\checkforspace by -2\ht\dblbotins +\advance\checkforspace by -2\dp\dblbotins +\ifdim\checkforspace<36pt\newpage\fi +\begingroup +\expandafter\gdef\csname plate*\endcsname{\twocolplate} +\expandafter\gdef\csname endplate*\endcsname{\endtwocolfloat} +% +\expandafter\gdef\csname figure*\endcsname{\twocolfig} +\expandafter\gdef\csname endfigure*\endcsname{\endtwocolfloat} +% +\expandafter\gdef\csname table*\endcsname{\twocoltable} +\expandafter\gdef\csname endtable*\endcsname{\endtwocolfloat} +% +\let\figure\onecolfig +\let\plate\onecolplate +\let\table\onecoltable +% +\global\firstsectionfalse +\hsize=\mycolumnwidth +\linewidth=\mycolumnwidth + \vbadness10001 +\hbadness5000 + \tolerance5000 +\widowpenalty=0 \clubpenalty=0 +\parskip \saveparskip %plus .0001pt % +\vskip1sp\ignorespaces} + +\def\draftcolumns{\par \penalty\z@ +\begingroup +\expandafter\gdef\csname plate*\endcsname{\twocolplate} +\expandafter\gdef\csname endplate*\endcsname{\endtwocolfloat} +% +\expandafter\gdef\csname figure*\endcsname{\twocolfig} +\expandafter\gdef\csname endfigure*\endcsname{\endtwocolfloat} +% +\expandafter\def\csname table*\endcsname{\twocoltable} +\expandafter\def\csname endtable*\endcsname{\endtwocolfloat} +% +\let\figure\onecolfig +\let\plate\onecolplate +\let\table\onecoltable +% +\marginparsep=4pt +\oddsidemargin-.25in +\evensidemargin-.25in +\advance\textwidth-.5in +\hsize=\textwidth +\linewidth=\textwidth + \vbadness10001 \hbadness5000 + \tolerance5000 +\parskip \saveparskip +\vskip1sp\ignorespaces} + +\newbox\savetopinsert +\newbox\savebotinsert +\newbox\secondsavetopinsert +\newbox\secondsavebotinsert +\newbox\firstcolbox +\newbox\secondcolbox +\newbox\thefirstbox +\newbox\thesecondbox + +\newdimen\firstcol +\newdimen\secondcol +\newdimen\checkheight + +\newcount\loopnum +\newcount\firstcolsavefignum + +\def\firstcolout{% +%% The point of having firstcolout is to find out +%% which figures/tables have been entered in the first column: +\global\firstcolsavefignum=\figandtabnumber +\global\advance\vsize by\@colroom +\topskip=11pt %% ?? + \unvbox\@cclv + \penalty\outputpenalty +\global\output={\makeuppage}} + +%% This is where the floats and text are put together to make page: + +\newif\iffirstpage +\newbox\footnotebox + +\newdimen\ColUsed +\newdimen\FigSpace +\newbox\testdblbotins + +\def\makeuppage{% +%% +\FigSpace=.9\@colroom %% +\advance\FigSpace by-\ht\testdblbotins +\advance\FigSpace by-\dp\testdblbotins +\advance\FigSpace by-\ht\dbltopins +\advance\FigSpace by-\dp\dbltopins +% +%% Save top inserts from first column: +++ +\global\setbox\savetopinsert=\vbox{% +% write top figures and tables into this box +\redefiningtrue +\global\loopnum=0 \global\checkheight=0pt +\loop\ifnum\loopnum<\firstcolsavefignum + % +\expandafter\ifx\csname topfloat\the\loopnum\endcsname\empty +\else +\expandafter\ifx\csname topfloat\the\loopnum\endcsname\relax +\else +\global\advance\checkheight by +\expandafter\csname totalht\the\loopnum\endcsname\relax +\fi\fi +\ifdim\checkheight>\FigSpace \relax +\global\loopnum=10000 % jump out of loop +% +\else +\csname topfloat\the\loopnum\endcsname +\fi + % +\global\advance\loopnum by1 +\repeat\relax +} +\ColUsed=\FigSpace %% +\advance\ColUsed by-\ht\savetopinsert +\advance\ColUsed by-\dp\savetopinsert + %% +\global\setbox\savebotinsert=\vbox{% + %% Write bottom figures and tables into this box +\redefiningtrue +\global\loopnum=0 +\global\checkheight=0pt +\loop\ifnum\loopnum<\firstcolsavefignum +\expandafter\ifx\csname botfloat\the\loopnum\endcsname\empty +\else +\expandafter\ifx\csname botfloat\the\loopnum\endcsname\relax +\else +\global\advance\checkheight by +\expandafter\csname totalht\the\loopnum\endcsname\relax +\fi\fi +\ifdim\checkheight>\ColUsed +\global\loopnum=10000 % jump out of loop +\else% +\csname botfloat\the\loopnum\endcsname +\global\expandafter\expandafter\let\csname botfloat\the\loopnum\endcsname\relax +%% how come this reset is here and not in similar places???? +\fi + % +\global\advance\loopnum by1 +\repeat +} % + % +% +\iffirstpage\else +\global\setbox\secondsavetopinsert=\vbox{% +%% Write top figures and tables into this box +% +\global\loopnum=0 \global\checkheight=0pt +\redefiningtrue +\loop\ifnum\loopnum<\figandtabnumber %% ? +% +\expandafter\ifx\csname topfloat\the\loopnum\endcsname\empty +\else +\expandafter\ifx\csname topfloat\the\loopnum\endcsname\relax +\else +\global\advance\checkheight by +\expandafter\csname totalht\the\loopnum\endcsname\relax +\fi\fi +\ifdim\checkheight>\FigSpace +\global\loopnum=10000 % jump out of loop +% +\else% +\csname topfloat\the\loopnum\endcsname +\fi +% +\global\advance\loopnum by1\repeat +%% one more, because it doesn't stop when number is =, only when it +%% is less than. +\global\advance\loopnum by1 +\csname topfloat\the\loopnum\endcsname +} +\fi +% +\ColUsed=\FigSpace %% +\advance\ColUsed by-\ht\secondsavetopinsert +\advance\ColUsed by-\dp\secondsavetopinsert +% +\iffirstpage\global\firstpagefalse\else +\global\setbox\secondsavebotinsert=\vbox{% +%% Write bottom figures and tables into this box +% +\redefiningtrue +\global\loopnum=0 \global\checkheight=0pt +\loop\ifnum\loopnum<\figandtabnumber +\expandafter\ifx\csname botfloat\the\loopnum\endcsname\empty +\else +\expandafter\ifx\csname botfloat\the\loopnum\endcsname\relax +\else +\global\advance\checkheight by +\expandafter\csname totalht\the\loopnum\endcsname\relax +\fi\fi +\ifdim\checkheight>\ColUsed +\global\loopnum=10000 % jump out of loop +% +\else% +\csname botfloat\the\loopnum\endcsname +\fi +% +\global\advance\loopnum by1\repeat +%% one more, because it doesn't stop when number is =, only when it +%% is less than. +\global\advance\loopnum by1 +\csname botfloat\the\loopnum\endcsname +} +% +\global\dp\secondsavebotinsert=2.5pt +\global\dp\savebotinsert=2.5pt +\fi +% + \splittopskip=\topskip + \splitmaxdepth\maxdepth + \dimen@\@colroom +%% Leave space if there is a two-column wide bottom insertion: +% +\global\setbox\dblbotins=\vbox{% +\hsize=\textwidth +\linewidth=\textwidth +\captionwidth=\widecaptionwidth +\unvbox\dblbotins %% avoid eradicating this if it has anything in it +%% Write dblspan bottom figures and tables into this box +\redefiningtrue +\global\dblloopnum=0 +\loop\ifnum\dblloopnum<\savedblfigandtabnumber %% +\csname dblbotfloat\the\dblloopnum\endcsname +\global\advance\dblloopnum by1\repeat +\csname dblbotfloat\the\dblloopnum\endcsname +} + \ifvoid\dblbotins \else + \advance\dimen@-\ht\dblbotins + \advance\dimen@-\dp\dblbotins +\fi +% +%% Leave space if there is a two-column wide top insertion: + \ifvoid\dbltopins\else + \advance\dimen@-\ht\dbltopins + \advance\dimen@-\dp\dbltopins +\fi +%% +%% These changes are made to cut the column size down if we need +%% to fit an insert into the column. This allows the right and +%% left column to have differing amounts of text cut from box 255, +%% called box \@cclv in LaTeX. See \vsplit below. +\firstcol=\dimen@ +\ifvoid\savetopinsert\else +\ifdim\ht\savetopinsert>0pt +\advance\firstcol by-\ht\savetopinsert +\advance\firstcol by-\dp\savetopinsert\fi\fi +\ifvoid\savebotinsert\else +\ifdim\ht\savebotinsert>0pt +\advance\firstcol by-\ht\savebotinsert +\advance\firstcol by-\dp\savebotinsert\fi +\fi% +%%% KLUDGE below +\advance\firstcol by-3pt %% We need this to avoid + %% error messages about overfull boxes. +% +\secondcol=\dimen@ +%% +\ifvoid\secondsavetopinsert\else +\ifdim\ht\secondsavetopinsert>0pt +\advance\secondcol by-\ht\secondsavetopinsert +\advance\secondcol by-\dp\secondsavetopinsert\fi\fi +\ifvoid\secondsavebotinsert\else +\ifdim\ht\secondsavebotinsert>0pt +\advance\secondcol by-\ht\secondsavebotinsert +\advance\secondcol by-\dp\secondsavebotinsert\fi\fi +\ifvoid\footins\else +\ifdim\ht\footins>0pt +\global\setbox\footnotebox=\vbox{\vskip\skip\footins +\footnoterule\unvbox\footins\vskip1sp} +\advance\secondcol by-\ht\footnotebox +\advance\secondcol by-\dp\footnotebox\fi\fi +%%% KLUDGE below +\advance\secondcol by-3pt %% We need this to avoid + %% error messages about overfull boxes. +% +%% Cutting the amount of text that will fit from box255: + \splittopskip=\topskip %% + \splitmaxdepth\maxdepth +\setbox\thefirstbox \vsplit\@cclv to\firstcol +\setbox\thesecondbox \vsplit\@cclv to\secondcol +% +%% Making a text box that includes the inserts, column to the left: +\setbox\firstcolbox\vbox to\dimen@{% +\ifvoid\savetopinsert\else\unvbox\savetopinsert\fi% +\box\thefirstbox% +\ifvoid\savebotinsert\else\vfill\unvbox\savebotinsert\fi% +} +% +%% Making a text box that includes the inserts, column to the right: +\setbox\secondcolbox\vbox to\dimen@{% +\ifvoid\secondsavetopinsert\else\unvbox\secondsavetopinsert\fi% +\box\thesecondbox%% +\ifvoid\secondsavebotinsert\else\vfill\unvbox\secondsavebotinsert\vskip1sp\fi% +\ifvoid\footnotebox\else\unvbox\footnotebox\fi% +} +% Put back any text material that is not used: + \ifvoid\@cclv \else + \unvbox\@cclv + \penalty\outputpenalty\fi + \setbox\@cclv\vbox{\page@sofar}% + \@makecol\@outputpage + \global\@colroom\@colht +% Changed this so that each column will be output separately, +% so we have a chance to see if there are any insertions in the first +% column. +% +%% Do Page Inserts here, so that if there are any two col top inserts +%% They will be numbered after Page Inserts. +%% +\expandafter\ifx\csname pagefloat\the\pageloopnum\endcsname\relax +\else +\expandafter\ifx\csname pagefloat\the\pageloopnum\endcsname\empty +\else +\insertpage\fi\fi +% +%** doing this now gets the numbers right. +\global\setbox\dbltopins=\vbox{% +\hsize=\textwidth +\linewidth=\textwidth +\captionwidth=\widecaptionwidth +\unvbox\dbltopins +%% Write dblspan bottom figures and tables into this box +\redefiningtrue % +\global\dblloopnum=0 +\loop\ifnum\dblloopnum<\savedblfigandtabnumber +\csname dbltopfloat\the\dblloopnum\endcsname +\global\advance\dblloopnum by1\repeat +\csname dbltopfloat\the\dblloopnum\endcsname% + %Save one for next page? +%\vskip24pt +} +%** +% +%% dblfigandtabnumber rather than savedblfigandtabnumber here +\global\setbox\testdblbotins=\vbox{% +\let\c@figure\bogus +\let\c@table\bogus +\let\c@plate\bogus +\hsize=\textwidth +\linewidth=\textwidth +\captionwidth=\widecaptionwidth +\copy\dblbotins %% avoid eradicating this if it has anything in it +%% Write dblspan bottom figures and tables into this box +\redefiningfalse +\global\dblloopnum=0 +\loop\ifnum\dblloopnum<\dblfigandtabnumber %% +\csname dblbotfloat\the\dblloopnum\endcsname +\global\advance\dblloopnum by1\repeat +\csname dblbotfloat\the\dblloopnum\endcsname +} +% +\ifbalancing +\global\balancingfalse +\global\vsize=2\@colroom +\else +\global\vsize\@colroom +\global\advance\vsize -\ht\dbltopins +\global\advance\vsize -\dp\dbltopins +\global\advance\vsize -\ht\testdblbotins +\global\advance\vsize -\dp\testdblbotins +\global\output={\firstcolout}% +\fi +} + + +\newcount\pageloopnum + +\def\secondoutput{{\makeuppage }} + +\newbox\endcolsavetopinsert +\newbox\endcolsavebotinsert +\newbox\testpagesize +\newif\ifbalancing + +\newdimen\savelastskip +%%+++ +\def\endtwocolumns{% +%\par\penalty0 +\splittopskip=\topskip +\splitmaxdepth\maxdepth +\setboxesandredefine +\ifdim\ht\endcolsavetopinsert>1pt +\unvbox\endcolsavetopinsert% +\fi +\ifdim\ht\endcolsavebotinsert>1pt +\unvbox\endcolsavebotinsert% +\fi +\par\penalty\z@ +\output={\global\setbox\testpagesize=\vbox{% +\unvbox\@cclv\ifdim\savelastskip>0pt \vskip-\savelastskip\fi}}\eject + %% + %% We reset output routine below to \latexoutput + %% since we had to set multicolout to be the global output routine. + %% +\dimen0=\ht\testpagesize +\advance\dimen0 by\dp\testpagesize +\unvbox\testpagesize %% +%% Above needed to see if we have more than one page worth of text. +%% +\advance\dimen0 by \topskip +\ifdim\dimen0>2\@colroom +%\typeout{^^J^^J more than 2 colroom^^J^^J} + %% More than one page of text: + %% +\balancingtrue %% need this to avoid turning on firstcolout output routine. +\global\output={\settwocolboxes\makeuppage +\global\output={\setboxesandredefine +\balance@columns\global\output={\latexoutput}}} +\else +\settwocolboxes +\advance\dimen0 by 2\ht\dbltopins +\advance\dimen0 by 2\dp\dbltopins +\ifdim\dimen0>2\@colroom +%\typeout{^^J^^J Second more than 2 colroom^^J^^J} + %% +\balancingtrue %% need this to avoid turning on firstcolout output routine. +\global\output={\makeuppage +\global\output={\balance@columns\global\output={\latexoutput}}} +\else +%\typeout{^^J^^J NOT more than 2 colroom^^J^^J} +\balancingtrue %% need this to avoid turning on firstcolout output routine. +\global\output={\balance@columns\global\output={\latexoutput}}\fi\fi +\par +\eject +\endgroup +\par\penalty\z@\relax +\hsize=\textwidth +} + +%% to get rid of spurious error message when triple col is used: +%\def\@checkend#1{\def\reserved@a{#1}\ifx +% \reserved@a\@currenvir \else\iftriplecol +%\else\@badend{#1}\fi\fi} + +\def\endgalley{\vskip1sp\endgroup\newpage +\vspace*{1in} +\unvbox\figinsert} + +\def\enddraft{\vskip1sp\endgroup +\ifdim\ht\figinsert <2pt\else +\newpage +\vspace*{1in} +\unvbox\figinsert\fi} + +\def\setboxesandredefine{% +\global\setbox\dbltopins=\vbox{% +\hsize=\textwidth +\linewidth=\textwidth +\captionwidth=\widecaptionwidth +\unvbox\dbltopins +%% Write dblspan bottom figures and tables into this box +\redefiningtrue % +\global\dblloopnum=0 +\loop\ifnum\dblloopnum<\dblfigandtabnumber +\csname dbltopfloat\the\dblloopnum\endcsname +\global\advance\dblloopnum by1\repeat +\csname dbltopfloat\the\dblloopnum\endcsname% +% %Save one for next page? +\vskip3pt%% kludge +\vskip-\intextfloatskip +} +% +\global\setbox\endcolsavetopinsert=\vbox{% +%% dropping figures and tables into this box +\loopnum=0 +\redefiningtrue +\loop\ifnum\loopnum<\figandtabnumber +\csname topfloat\the\loopnum\endcsname +\global\advance\loopnum by1\repeat +\csname topfloat\the\loopnum\endcsname% +} +% +\global\setbox\endcolsavebotinsert=\vbox{% +%% drop figures and tables into this box +\global\loopnum=0 +\redefiningtrue +\loop\ifnum\loopnum<\figandtabnumber +\csname botfloat\the\loopnum\endcsname +\global\advance\loopnum by1\repeat +\csname botfloat\the\loopnum\endcsname} +% +\global\setbox\dblbotins=\vbox{% +\hsize=\textwidth +\linewidth=\textwidth +\captionwidth=\widecaptionwidth +\unvbox\dblbotins %% avoid eradicating this if it has anything in it +% Write dblspan bottom figures and tables into this box +\redefiningtrue +\global\dblloopnum=0 +\loop\ifnum\dblloopnum<\dblfigandtabnumber %% +\csname dblbotfloat\the\dblloopnum\endcsname +\global\advance\dblloopnum by1\repeat +\csname dblbotfloat\the\dblloopnum\endcsname}% +}%% end of setboxes and redefine + +\def\settwocolboxes{% +\global\setbox\dbltopins=\vbox{% +\hsize=\textwidth +\linewidth=\textwidth +\captionwidth=\widecaptionwidth +\unvbox\dbltopins +% Write dblspan bottom figures and tables into this box +\redefiningtrue % +\global\dblloopnum=0 +\loop\ifnum\dblloopnum<\dblfigandtabnumber +\csname dbltopfloat\the\dblloopnum\endcsname +\global\advance\dblloopnum by1\repeat +\csname dbltopfloat\the\dblloopnum\endcsname% +% +%\global\setbox\dblbotins=\vbox +\hsize=\textwidth +\linewidth=\textwidth +\captionwidth=\widecaptionwidth +\unvbox\dblbotins %% avoid eradicating this if it has anything in it +% Write dblspan bottom figures and tables into this box +\redefiningtrue +\global\dblloopnum=0 +\loop\ifnum\dblloopnum<\dblfigandtabnumber %% +\csname dblbotfloat\the\dblloopnum\endcsname +\global\advance\dblloopnum by1\repeat +\csname dblbotfloat\the\dblloopnum\endcsname% +\vskip\intextfloatskip%% new++ +}} + +\def\setonecolboxesandredefine{% +\global\setbox\endcolsavetopinsert=\vbox{% +%% dropping figures and tables into this box +\loopnum=0 +\redefiningtrue +\loop\ifnum\loopnum<\figandtabnumber +\csname topfloat\the\loopnum\endcsname +\expandafter\ifx\csname topfloat\the\loopnum\endcsname\relax\else +\vskip12pt\goodbreak\fi +\global\advance\loopnum by1\repeat +\csname topfloat\the\loopnum\endcsname% +} +% +\global\setbox\endcolsavebotinsert=\vbox{% +%% drop figures and tables into this box +\global\loopnum=0 +\redefiningtrue +\loop\ifnum\loopnum<\figandtabnumber +\csname botfloat\the\loopnum\endcsname +% we don't want a space here because it is at the bottom of a column: +%\expandafter\ifx\csname botfloat\the\loopnum\endcsname\relax\else +%\vskip12pt\goodbreak\fi +\global\advance\loopnum by1\repeat +\csname botfloat\the\loopnum\endcsname% +} +% +}%% end of setonecol boxes and redefine + +\newbox\partialpage +\def\process@cols#1#2{\count@#1\relax + \loop #2% + \advance\count@\tw@ + \ifnum\count@<4 + \repeat} + +%%% Version for balanced column output. + +%% this version to get topskip right on balanced page at end of article. + +\def\Bpage@sofar{ +\unvbox\partialpage +%% major kludge! but it works ==>> +\null +\vskip-\topskip +\vskip-12pt +%% <<== + \process@cols\z@{\wd\count@\hsize}% + \hbox to\textwidth{% + \process@cols\tw@{\box\count@ + \hss\vrule\@width\columnseprule\hss}% + \box\z@}} + +%%% AH: Version for two column output. %% +\def\page@sofar{\unvbox\partialpage +\wd\firstcolbox\hsize +\wd\secondcolbox\hsize +\hbox to\textwidth{% +\box\firstcolbox + \hss\vrule\@width\columnseprule\hss +\box\secondcolbox}%% +} + + +%% Variant on \@outputpage to use for floating page insert: +\def\insertpage{\begingroup\catcode`\ =10 + \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii + \if@twoside + \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot + \let\@themargin\oddsidemargin + \else \let\@thehead\@evenhead + \let\@thefoot\@evenfoot \let\@themargin\evensidemargin + \fi\fi + \shipout + \vbox{\normalsize \baselineskip\z@ \lineskip\z@ + \let\par\@@par %% + \vskip \topmargin \moveright\@themargin + \vbox{\setbox\@tempboxa + \vbox to\headheight{\vfil \hbox to\textwidth + {\let\label\@gobble \let\index\@gobble + \@thehead}} %% + \dp\@tempboxa\z@ + \box\@tempboxa + \vskip \headsep +%% change from \@outputpage below +\vbox to\textheight{\vfil +\hsize=\textwidth +\linewidth=\textwidth +\csname pagefloat\the\pageloopnum \endcsname +} + \baselineskip\footskip + \hbox to\textwidth{\let\label\@gobble + \let\index\@gobble %% + \@thefoot}}}\global\@colht\textheight + \endgroup\stepcounter{page}\let\firstmark\botmark +\global\advance\pageloopnum by1 +\expandafter\ifx\csname pagefloat\the\pageloopnum\endcsname\relax\else% +\insertpage\fi% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\balance@columns{% can't throw in figs here because we + % aren't doing eject, so they will be lost +\ifdim\ht\dbltopins>1pt + \advance\@colroom-\ht\dbltopins + \advance\@colroom-\dp\dbltopins +\advance\@colroom-\baselineskip +\fi +\ifdim\ht\dblbotins>1pt + \advance\@colroom-\ht\dblbotins + \advance\@colroom-\dp\dblbotins +\fi + \setbox\z@\vbox{\unvbox\@cclv} +\dimen@\ht\z@ +%\advance\dimen@\dp\z@ +\advance\dimen@ 2\topskip + \advance\dimen@-2\baselineskip %% ?? was 2\baselineskip, 4 gives better + %topskip + \divide\dimen@2% +% +{\vbadness\@M + \splittopskip=\topskip + \loop{\process@cols\@ne{\global\setbox\count@ + \box\voidb@x}}% + \global\setbox\@ne\copy\z@ + {\process@cols\thr@@{\global\setbox\count@ + \vsplit\@ne to\dimen@}}% + \ifdim\ht\@ne >\ht\thr@@ + \global\advance\dimen@\p@ + \repeat} +% + \dimen@\ht\thr@@ + \process@cols\z@{\@tempcnta\count@ + \advance\@tempcnta\@ne + \setbox\count@\vtop to\dimen@ %% + {\unvbox\@tempcnta}}% + \global\vsize\@colroom + \global\advance\vsize\ht\partialpage + \Bpage@sofar} + +\@ifundefined{emergencystretch} + {\newdimen\emergencystretch}{} + +\emergencystretch 1pt + +\def\setemergencystretch#1#2{% + \emergencystretch 4pt + \multiply\emergencystretch#1} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Figure and table captions in two column text and spanning both +%%% columns. + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% Single column inserts: + +\let\savecaption\caption +\let\xsavecaption\savecaption + +\def\onecolfig{\ifvmode\else\unskip\fi +\global\captypefigtrue +\global\captypeplatefalse +\@ifnextchar[\lookforposition{\lookforposition[e]}} + +\def\onecolplate{\ifvmode\else\unskip\fi +\global\advance\c@plate -1\relax +\global\captypeplatetrue +\global\captypefigfalse +\@ifnextchar[\lookforposition{\lookforposition[e]}} + +\def\onecoltable{\ifvmode\else\unskip\vskip1pt\fi\tabletextsize +\global\captypefigfalse +\global\captypeplatefalse +\@ifnextchar[\lookforposition{\lookforposition[e]} +} + +%% This is used in case we get more than one letter, i.e., +%% \begin{figure}[htp]. This macro picks up only the first letter. + +\def\defone#1#2*{\def\one{#1}} + +\newcount\figandtabnumber +\newbox\figandtabbox +\newif\ifcaptypefig +\newif\ifcaptypeplate + +\long\def\catchcaption#1{% +\ifcaptypefig% +\expandafter\gdef\csname caption\the\figandtabnumber\endcsname{% +\def\@captype{figure}\savecaption{#1}}% +\else% +\ifcaptypeplate +\expandafter\gdef\csname caption\the\figandtabnumber\endcsname{% +\def\@captype{plate}\savecaption{#1}}% +\else +\expandafter\gdef\csname caption\the\figandtabnumber\endcsname{% +\def\@captype{table}\savecaption{#1}}% +\fi\fi} + +\long\def\dblcatchcaption#1{% +\ifcaptypefig% +\expandafter\gdef\csname dblcaption\the\dblfigandtabnumber\endcsname{% +\def\@captype{figure}\savecaption{#1}}% +\else% +\ifcaptypeplate +\expandafter\gdef\csname dblcaption\the\dblfigandtabnumber\endcsname{% +\def\@captype{plate}\savecaption{#1}}% +\else +\expandafter\gdef\csname dblcaption\the\dblfigandtabnumber\endcsname{% +\def\@captype{table}\savecaption{#1}}% +\fi\fi} + +\long\def\pcatchcaption#1{% +\ifcaptypefig% +\expandafter\gdef\csname pcaption\the\pagefloatnumber\endcsname{% +\def\@captype{figure}\savecaption{#1}}% +\else% +\ifcaptypeplate +\expandafter\gdef\csname pcaption\the\pagefloatnumber\endcsname{% +\def\@captype{plate}\savecaption{#1}}% +\else +\expandafter\gdef\csname pcaption\the\pagefloatnumber\endcsname{% +\def\@captype{table}\savecaption{#1}}% +\fi\fi} +%%% + +\long\def\catchletteredcaption#1#2{% +\ifcaptypefig% +\expandafter\gdef\csname letteredcaption\the\figandtabnumber\endcsname{% +\def\@captype{figure}\letteredcaption{#1}{#2}}% +\else% +\ifcaptypeplate +\expandafter\gdef\csname letteredcaption\the\figandtabnumber\endcsname{% +\def\@captype{plate}\letteredcaption{#1}{#2}}% +\else +\expandafter\gdef\csname letteredcaption\the\figandtabnumber\endcsname{% +\def\@captype{table}\letteredcaption{#1}{#2}}% +\fi\fi} + + +\long\def\dblcatchletteredcaption#1#2{% +\ifcaptypefig% +\expandafter\gdef\csname dblletteredcaption\the\dblfigandtabnumber\endcsname{% +\def\@captype{figure}% +\letteredcaption{#1}{#2}}% +\else% +\ifcaptypeplate +\expandafter\gdef\csname dblletteredcaption\the\dblfigandtabnumber\endcsname{% +\def\@captype{plate}% +\letteredcaption{#1}{#2}}% +\else +\expandafter\gdef\csname dblletteredcaption\the\dblfigandtabnumber\endcsname{% +\def\@captype{table}% +\letteredcaption{#1}{#2}}% +\fi\fi} + +\long\def\pcatchletteredcaption#1#2{% +\ifcaptypefig% +\expandafter\gdef\csname pletteredcaption\the\pagefloatnumber\endcsname{% +\def\@captype{figure}% +\letteredcaption{#1}{#2}}% +\else% +\ifcaptypeplate% +\expandafter\gdef\csname pletteredcaption\the\pagefloatnumber\endcsname{% +\def\@captype{plate}% +\letteredcaption{#1}{#2}}% +\else +\expandafter\gdef\csname pletteredcaption\the\pagefloatnumber\endcsname{% +\def\@captype{table}% +\letteredcaption{#1}{#2}}% +\fi\fi} + +%%% +\long\def\catchcontinuedcaption{% +\ifcaptypefig% +\expandafter\gdef\csname continuedcaption\the\figandtabnumber\endcsname{% +\def\@captype{figure}\continuedcaption}% +\else% +\ifcaptypeplate +\expandafter\gdef\csname continuedcaption\the\figandtabnumber\endcsname{% +\def\@captype{plate}\continuedcaption}% +\else +\expandafter\gdef\csname continuedcaption\the\figandtabnumber\endcsname{% +\def\@captype{table}\continuedcaption}% +\fi\fi} + +\long\def\dblcatchcontinuedcaption{% +\ifcaptypefig% +\expandafter\gdef\csname dblcontinuedcaption\the\dblfigandtabnumber\endcsname{% +\def\@captype{figure}\continuedcaption}% +\else% +\ifcaptypeplate +\expandafter\gdef\csname dblcontinuedcaption\the\dblfigandtabnumber\endcsname{% +\def\@captype{plate}\continuedcaption}% +\else +\expandafter\gdef\csname dblcontinuedcaption\the\dblfigandtabnumber\endcsname{% +\def\@captype{table}\continuedcaption}% +\fi\fi} + +\long\def\pcatchcontinuedcaption{% +\ifcaptypefig% +\expandafter\gdef\csname pcontinuedcaption\the\pagefloatnumber\endcsname{% +\def\@captype{figure}\continuedcaption}% +\else% +\ifcaptypeplate +\expandafter\gdef\csname pcontinuedcaption\the\pagefloatnumber\endcsname{% +\def\@captype{plate}\continuedcaption}% +\else +\expandafter\gdef\csname pcontinuedcaption\the\pagefloatnumber\endcsname{% +\def\@captype{table}\continuedcaption}% +\fi\fi} + +%%% +\long\def\catchletteredcontinuedcaption#1{% +\ifcaptypefig% +\expandafter\gdef\csname letteredcontcaption\the\figandtabnumber\endcsname{% +\def\@captype{figure}\letteredcontinuedcaption{#1}}% +\else% +\ifcaptypeplate% +\expandafter\gdef\csname letteredcontcaption\the\figandtabnumber\endcsname{% +\def\@captype{plate}\letteredcontinuedcaption{#1}}% +\else +\expandafter\gdef\csname letteredcontcaption\the\figandtabnumber\endcsname{% +\def\@captype{table}\letteredcontinuedcaption{#1}}% +\fi\fi} + + +\long\def\dblcatchletteredcontinuedcaption#1{% +\ifcaptypefig% +\expandafter% +\gdef\csname dblletteredcontcaption\the\dblfigandtabnumber\endcsname{% +\def\@captype{figure}\letteredcontinuedcaption{#1}}% +\else% +\ifcaptypeplate +\expandafter% +\gdef\csname dblletteredcontcaption\the\dblfigandtabnumber\endcsname{% +\def\@captype{plate}\letteredcontinuedcaption{#1}}% +\else +\expandafter% +\gdef\csname dblletteredcontcaption\the\dblfigandtabnumber\endcsname{% +\def\@captype{table}\letteredcontinuedcaption{#1}}% +\fi\fi} + +\long\def\pcatchletteredcontinuedcaption#1{% +\ifcaptypefig% +\expandafter% +\gdef\csname pletteredcontcaption\the\pagefloatnumber\endcsname{% +\def\@captype{figure}\letteredcontinuedcaption{#1}}% +\else% +\ifcaptypeplate% +\expandafter% +\gdef\csname pletteredcontcaption\the\pagefloatnumber\endcsname{% +\def\@captype{plate}\letteredcontinuedcaption{#1}}% +\else +\expandafter% +\gdef\csname pletteredcontcaption\the\pagefloatnumber\endcsname{% +\def\@captype{table}\letteredcontinuedcaption{#1}}% +\fi\fi} + +%%% + + +\newcount\pagefloatnumber + +\let\savelabel\label +\def\catchlabel#1{% +\expandafter\gdef\csname label\the\figandtabnumber\endcsname{\savelabel{#1}}} + +\def\pcatchlabel#1{% +\expandafter\gdef\csname plabel\the\pagefloatnumber\endcsname{\savelabel{#1}}} + +\def\dblcatchlabel#1{\expandafter% +\gdef\csname dbllabel\the\dblfigandtabnumber\endcsname{\savelabel{#1}}} + +%% + +\def\startonecolfloat{% +\expandafter\newbox\csname figandtabbox\the\figandtabnumber\endcsname% +\global\setbox\csname figandtabbox\the\figandtabnumber\endcsname= +\vbox\bgroup% +\ifcaptypefig\else +\ifcaptypeplate\def\@captype{plate} +\else +\def\@captype{table}\centering\tabletextsize\fi\fi% +\let\continuedcaption\catchcontinuedcaption +\let\letteredcaption\catchletteredcaption +\let\letteredcontinuedcaption\catchletteredcontinuedcaption +\let\caption\catchcaption +\let\label\catchlabel} + +\def\xtopfloat{topfloat} +\def\xbotfloat{botfloat} + +\newif\ifredefining + + +\newbox\sizeoffloat + +\def\endonecolfloat{% +%\ifcaptypefig\else% +%\ifnobottomtabline\global\nobottomtablinefalse\vskip-6.5pt\else +%\vskip2pt +%\thetablelines\fi\fi% +% +\egroup% +\DonormalEndcol% +%% make room in column for this insert: +\setbox\sizeoffloat=\vbox{\let\unvbox\copy +\let\c@table\bogus +\let\c@figure\bogus +\redefiningfalse \loopnum=\figandtabnumber +\expandafter\csname \toporbotfloat\the\figandtabnumber\endcsname}% +%% +\expandafter\xdef\csname totalht\the\figandtabnumber\endcsname{% +\the\ht\sizeoffloat}% <=== use before \sizeoffloat is unboxed +\global\advance\figandtabnumber by1\relax} + +\newcount\bogus +\def\DonormalEndcol{% +%% top float ==> +\ifx\toporbotfloat\xtopfloat% +%% figure ==> + \ifcaptypefig% + \expandafter\gdef\csname topfloat\the\figandtabnumber\endcsname{% + \vbox{\vskip\PushOneColTopFig% + \unvbox\csname figandtabbox\the\loopnum\endcsname% + \vskip\abovefigcaptionskip% + \csname caption\the\loopnum\endcsname% + \csname letteredcaption\the\loopnum\endcsname% + \csname continuedcaption\the\loopnum\endcsname% + \csname letteredcontcaption\the\loopnum\endcsname}% + \vskip\intextfloatskip%% + \vskip-4pt %% probably an artifact of topskip?? + \ifredefining% + \csname label\the\loopnum\endcsname% + \expandafter\gdef\csname topfloat\the\loopnum\endcsname{}\fi}% +\else% +%% plate ==> + \ifcaptypeplate% + \expandafter\gdef\csname topfloat\the\figandtabnumber\endcsname{% + \vbox{\vskip\PushOneColTopFig% + \unvbox\csname figandtabbox\the\loopnum\endcsname + \vskip\abovefigcaptionskip + \csname caption\the\loopnum\endcsname + \csname letteredcaption\the\loopnum\endcsname + \csname continuedcaption\the\loopnum\endcsname + \csname letteredcontcaption\the\loopnum\endcsname} + \vskip\intextfloatskip %% + \vskip-4pt %% probably an artifact of topskip?? + \ifredefining + \csname label\the\loopnum\endcsname + \expandafter\gdef\csname topfloat\the\loopnum\endcsname{}\fi}% +% +\else% table ==> + \expandafter\gdef\csname topfloat\the\figandtabnumber\endcsname{% + \vbox{\vskip\PushOneColTopTab %% + \csname caption\the\loopnum\endcsname + \csname letteredcaption\the\loopnum\endcsname + \csname continuedcaption\the\loopnum\endcsname + \csname letteredcontcaption\the\loopnum\endcsname + \vskip\captionskip + \unvbox\csname figandtabbox\the\loopnum\endcsname +}\vskip\intextfloatskip %% why don't we need this? +\vskip-10pt +\ifredefining +\csname label\the\loopnum\endcsname +\expandafter\gdef\csname topfloat\the\loopnum\endcsname{}\fi} +\fi\fi% +% +\else% bottom float +% +\ifcaptypefig +\expandafter\gdef\csname botfloat\the\figandtabnumber\endcsname{% +\vskip\intextfloatskip +\vbox{\unvbox\csname figandtabbox\the\loopnum\endcsname +\vskip\abovefigcaptionskip + \csname caption\the\loopnum\endcsname + \csname letteredcaption\the\loopnum\endcsname% + \csname continuedcaption\the\loopnum\endcsname% + \csname letteredcontcaption\the\loopnum\endcsname% +\vskip\PushOneColBotFig%% +}% +\ifredefining% +%\xdef\@currentlabel{\thefigure}% +\csname label\the\loopnum\endcsname +\expandafter\gdef\csname botfloat\the\loopnum\endcsname{}\fi}% +\else +\ifcaptypeplate +\expandafter\gdef\csname botfloat\the\figandtabnumber\endcsname{% +\vskip\intextfloatskip +\vbox{\unvbox\csname figandtabbox\the\loopnum\endcsname +\vskip\abovefigcaptionskip + \csname caption\the\loopnum\endcsname + \csname letteredcaption\the\loopnum\endcsname% + \csname continuedcaption\the\loopnum\endcsname% + \csname letteredcontcaption\the\loopnum\endcsname% +\vskip\PushOneColBotFig%% +}% +\ifredefining% +%\xdef\@currentlabel{\thefigure}% +\csname label\the\loopnum\endcsname +\expandafter\gdef\csname botfloat\the\loopnum\endcsname{}\fi}% + \else% TABLE +\expandafter\gdef\csname botfloat\the\figandtabnumber\endcsname{% + \vskip\intextfloatskip +\vbox{\csname caption\the\loopnum\endcsname + \csname letteredcaption\the\loopnum\endcsname + \csname continuedcaption\the\loopnum\endcsname + \csname letteredcontcaption\the\loopnum\endcsname% + \vskip.5\intextfloatskip + \unvbox\csname figandtabbox\the\loopnum\endcsname% +\vskip\PushOneColBotTab +}% +\ifredefining% +\csname label\the\loopnum\endcsname +\expandafter\gdef\csname botfloat\the\loopnum\endcsname{}\fi}% +\fi\fi\fi} + +% +\def\startpagefloat{% +\expandafter\newbox\csname pagebox\the\pagefloatnumber\endcsname% +\global\setbox\csname pagebox\the\pagefloatnumber\endcsname=\vbox\bgroup% +\hsize=\textwidth% +\linewidth=\textwidth% +\captionwidth=\widecaptionwidth +\let\label\pcatchlabel\ifcaptypefig\else\centering\fi% +\let\caption\pcatchcaption \let\letteredcaption\pcatchletteredcaption +\let\continuedcaption\pcatchcontinuedcaption +\let\letteredcontinuedcaption\pcatchletteredcontinuedcaption +} + +\def\endpagefloat{\egroup +\DoNormalPage +\global\advance\pagefloatnumber by1 +} + +\def\DoNormalPage{\ifcaptypefig +% +\expandafter\gdef\csname pagefloat\the\pagefloatnumber\endcsname{% +\vbox{\hsize=\textwidth +\linewidth=\textwidth +\twocolfigortabtrue +\captionwidth=\widecaptionwidth +\unvbox\csname pagebox\the\pageloopnum\endcsname + \vskip\captionskip + \csname pcaption\the\pageloopnum\endcsname + \csname pletteredcaption\the\pageloopnum\endcsname + \csname pcontinuedcaption\the\pageloopnum\endcsname + \csname pletteredcontcaption\the\pageloopnum\endcsname +} \vskip\intextfloatskip %% +\xdef\@currentlabel{\thefigure}% + \csname plabel\the\pageloopnum\endcsname +\expandafter\gdef\csname pagefloat\the\pageloopnum\endcsname{}}% +\else +\ifcaptypeplate +\expandafter\gdef\csname pagefloat\the\pagefloatnumber\endcsname{% +\vbox{\hsize=\textwidth +\linewidth=\textwidth +\twocolfigortabtrue +\captionwidth=\widecaptionwidth +\unvbox\csname pagebox\the\pageloopnum\endcsname + \vskip\captionskip + \csname pcaption\the\pageloopnum\endcsname + \csname pletteredcaption\the\pageloopnum\endcsname + \csname pcontinuedcaption\the\pageloopnum\endcsname + \csname pletteredcontcaption\the\pageloopnum\endcsname +} \vskip\intextfloatskip %% +\xdef\@currentlabel{\thefigure}% + \csname plabel\the\pageloopnum\endcsname +\expandafter\gdef\csname pagefloat\the\pageloopnum\endcsname{}}% +\else +\expandafter\gdef\csname pagefloat\the\pagefloatnumber\endcsname{% +\vbox{%% +\hsize=\textwidth +\linewidth=\textwidth +\iflandscapetable +\dimen0=\textheight +\advance\dimen0 by-\textwidth +\hsize=\textheight +\linewidth=\textheight\fi% +\csname pcaption\the\pageloopnum\endcsname +\csname pletteredcaption\the\pageloopnum\endcsname +\csname pcontinuedcaption\the\pageloopnum\endcsname +\csname pletteredcontcaption\the\pageloopnum\endcsname + \vskip\intextfloatskip + \unvbox\csname pagebox\the\pageloopnum\endcsname} + \vskip\intextfloatskip %% +\csname plabel\the\pageloopnum\endcsname +\expandafter\gdef\csname pagefloat\the\pageloopnum\endcsname{}}\fi\fi} + +\newif\iffirstfighere +\global\firstfigheretrue + +\newif\iffirsttabhere +\global\firsttabheretrue + +\def\dofigmessage{\iffirstfighere\global\firstfigherefalse +\typeout{^^J +======================================================================== +^^J +C A R E F U L !!!!!^^J +^^J +You have used \string\begin{figure}[h]\space !^^J +If there are any figures that appear earlier on the page^^J +they may be numbered incorrectly.^^J +^^J +Please check this and every other page on which you have used ^^J +\string\begin{figure}[h]\space !^^J +^^J +======================================================================== +^^J} +\else +\typeout{^^J^^J +C A R E F U L !! \string\begin{figure}[h] used on this page !^^J^^J} +\fi} + +\def\dotabmessage{\iffirsttabhere\global\firsttabherefalse +\typeout{^^J +======================================================================== +^^J +C A R E F U L !!!!!^^J +^^J +You have used \string\begin{table}[h]\space !^^J +If there are any tables that appear earlier on the page^^J +they may be numbered incorrectly.^^J +^^J +Please check this and every other page on which you have used ^^J +\string\begin{table}[h]\space !^^J +^^J +======================================================================== +^^J} +\else +\typeout{^^J^^J +C A R E F U L !! \string\begin{table}[h] used on this page !^^J^^J} +\fi} + +\def\lookforposition[#1]{\defone#1*% +\let\go\startonecolfloat +\let\endtable\endonecolfloat +\let\endfigure\endonecolfloat +\let\endplate\endonecolfloat +\ifgalley +\if\one p \def\one{s} +\else +\def\one{i}\fi +%\else\ifappendon\def\one{h}\fi +\fi% +\ifjdraft +\expandafter\ifx\csname setkeys\endcsname\relax\else +\setkeys{Gin}{draft=false}\fi +\if\one p \def\one{s} +\else +\def\one{i}\fi +\else%\ifappendon\def\one{h}\fi +\fi% +\if\one h +\ifcaptypeplate\else +\ifcaptypefig +\dofigmessage +\else +\dotabmessage +\fi\fi% +\let\go\doonecolfighere +\let\endtable\endonecolfighere +\let\endfigure\endonecolfighere +\let\endplate\endonecolfighere +\else% +\if\one t% + \gdef\toporbotfloat{topfloat}% +\else% +\if\one b% + \gdef\toporbotfloat{botfloat}% +\else% +\if\one p% +\let\go\startpagefloat% +\let\endtable\endpagefloat% +\let\endfigure\endpagefloat% +\let\endplate\endpagefloat% +\else% +\if\one e% for either + \ifdim\pagetotal>.6\pagegoal% + \gdef\toporbotfloat{botfloat}% + \else% + \gdef\toporbotfloat{topfloat}% + \fi% +\else% +\if\one i% for galley mode +\let\go\dofiginsert% +\let\endtable\endfiginsert% +\let\endfigure\endfiginsert% +\let\endplate\endfiginsert% +\else% +\if\one s% for special galley mode, for [p] +\let\go\dodblfiginsert% +\let\endtable\endspfiginsert% +\let\endfigure\endspfiginsert% +\let\endplate\endspfiginsert% +\else% + \doerr% + \ifdim\pagetotal>.5\pagegoal% + \gdef\toporbotfloat{botfloat}% + \else% + \gdef\toporbotfloat{topfloat}% + \fi% +\fi\fi\fi\fi\fi\fi\fi\go} + +\newinsert\figinsert +\skip\figinsert=0pt % space added when figinsert is used +\count\figinsert=0 % insert magnification factor (1 to 1) +\dimen\figinsert=\maxdimen % maximum space for figures + +\def\dofiginsert{\setbox0=\vbox\bgroup +\ifcaptypefig\def\@captype{figure}\else +\ifcaptypeplate\def\@captype{plate}\else +\def\@captype{table}\centering\tabletextsize\fi\fi} +\def\endfiginsert{\egroup\insert\figinsert{\vskip24pt\vbox{\unvbox0}\vskip24pt}% +\ignorespaces} + +\def\endspfiginsert{\egroup\insert\figinsert{\newpage\vbox to\textheight{\vss +\unvbox0}\newpage}% +\ignorespaces} + +\def\dodblfiginsert{\setbox0=\vbox\bgroup +\captionwidth=\widecaptionwidth +\hsize=\textwidth +\linewidth=\textwidth +\ifcaptypefig\def\@captype{figure}\else +\ifcaptypeplate\def\@captype{plate}\else +\def\@captype{table}\centering\fi\fi +} + +\def\enddblfiginsert{\egroup\insert\figinsert{\vskip24pt\vbox{\unvbox0}\vskip24pt}} + +\long\def\saveherecaption#1{\gdef\thesavedcaption{\savecaption{#1}}} + +\long\def\saveherecontinuedcaption{\gdef\thesavedcaption{\continuedcaption}} + +\long\def\savehereletteredcaption#1#2{\gdef\thesavedcaption{% +\gdef\theletter{#1}\savecaption{#2}}} + +\long\def\savehereletteredcontinuedcaption#1{\gdef\thesavedcaption{% +\letteredcontinuedcaption{#1}}} + +\long\def\saveherelabel#1{\gdef\thesavedlabel{#1}} +\saveherelabel{\relax} + +\def\thesavedcaption{\relax} + +\newbox\herebox +%% either figure [h] or table [h] +\newif\ifhere +\def\doonecolfighere{\vskip1sp\bgroup% +\heretrue% +\ifcaptypefig\def\@captype{figure}\else% +\ifcaptypeplate\def\@captype{plate}\else% +\def\@captype{table}\centering\fi\fi% +\setbox\herebox\vbox\bgroup% +\let\label\saveherelabel% +\let\caption\saveherecaption% +\let\letteredcaption\savehereletteredcaption% +\let\continuedcaption\saveherecontinuedcaption% +\let\letteredcontinuedcaption\savehereletteredcontinuedcaption% +} + +\def\xrelax{\relax} + +\def\endonecolfighere{% +\egroup% +\vskip\intextfloatskip% +\vtop{\vskip-5.5pt +%\ifappendon +%\let\thefigure\appthefigure +%\let\thetable\appthetable +%\let\theplate\apptheplate +%\let\savecaption\appcaption +%\fi +% +\ifx\thesavedcaption\xrelax + \unvbox\herebox +\else + \ifcaptypefig + \unvbox\herebox + \thesavedcaption +\else + \ifcaptypeplate + \unvbox\herebox + \thesavedcaption +% + \else +% + \thesavedcaption + \unvbox\herebox + \fi +\fi\fi +% +\gdef\thesavedcaption{\relax} +\ifx\thesavedlabel\xrelax\else% + \ifcaptypefig\else\edef\@currentlabel{\thetable}\fi + \savelabel{\thesavedlabel} + \gdef\thesavedlabel{\relax} +\fi +\gdef\theletter{\relax} +}\vskip1sp +\egroup +\vskip\intextfloatskip +} + +\newbox\endfigbox + +\def\doerr{% +\typeout{\space\space\space\space\space\space\space\space\space} +\typeout{Sorry! +Your choices following \string\figure\space or \string\table\space^^J% +are only [h] for `here', [t] for `top', [b] for `bottom', or [p] +for `page'.^^J% +I have ignored the [\one] and inserted the figure or table at this +point^^J% +on the page. See documentation if you need more help.} +\typeout{\space\space\space\space\space\space\space\space\space}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Inserts spanning both columns: + +\newbox\spanbox + +\def\centertabular{\bgroup\centering\savetabular} +\def\endcentertabular{\saveendtabular\vskip1pt\egroup} + +%%% + +\newbox\dbltopins +\newbox\dblbotins + +\newskip\dblbotskip +\dblbotskip=12pt plus 3pt + +\def\twocolfig{\global\captypefigtrue +\global\captypeplatefalse +\def\@captype{figure} +\@ifnextchar[\twolookforposition{\twolookforposition[t]}}% + +\def\twocolplate{\global\captypeplatetrue +\global\captypefigfalse +\def\@captype{plate} +\@ifnextchar[\twolookforposition{\twolookforposition[t]}}% + +\def\twocoltable{\vskip1pt\tabletextsize +\global\captypefigfalse +\global\captypeplatefalse +\def\@captype{table} +\@ifnextchar[\twolookforposition{\twolookforposition[t]}}% + +\newcount\dblfigandtabnumber +\dblfigandtabnumber=1 +\newbox\dblfigandtabbox + +\def\starttwocolfloat{\ifvmode\else\unskip\fi\expandafter% + \ifx\csname dblfigandtabbox\the\dblfigandtabnumber\endcsname\relax% + \expandafter% + \newbox\csname dblfigandtabbox\the\dblfigandtabnumber\endcsname% + \fi% +\global\setbox\csname dblfigandtabbox\the\dblfigandtabnumber\endcsname= +\vbox\bgroup\let\label\dblcatchlabel% +% + \ifcaptypefig\def\@captype{figure}\else% + \ifcaptypeplate\def\@captype{plate}\else% + \def\@captype{table}\centering\tabletextsize% + \fi% + \fi% +\captionwidth=\widecaptionwidth +\hsize=\textwidth +\linewidth=\textwidth\relax +% +\let\caption\dblcatchcaption +\let\letteredcaption\dblcatchletteredcaption +\let\continuedcaption\dblcatchcontinuedcaption +\let\letteredcontinuedcaption\dblcatchletteredcontinuedcaption +\let\label\dblcatchlabel +} + +\newcount\dblloopnum +\newcount\savedblfigandtabnumber +%\newcount\savefigandtabnumber + +\def\xdbltopfloat{dbltopfloat} +\def\xdblbotfloat{dblbotfloat} + +\def\endtwocolfloat{% +%\ifcaptypefig\else% +%\ifcaptypeplate\else% +%\ifnobottomtabline\global\nobottomtablinefalse\vskip-6.5pt\else% +%\vskip2pt +%\thetablelines\fi\fi\fi% +% +\egroup% +\ifx\dbltoporbotfloat\xdbltopfloat% +%%++ +\ifcaptypefig% +\expandafter\gdef\csname dbltopfloat\the\dblfigandtabnumber\endcsname{% +\vbox{\vskip\PushTwoColTopFig% +\copy\csname dblfigandtabbox\the\dblloopnum\endcsname% + \vskip\captionskip% + \csname dblcaption\the\dblloopnum\endcsname% + \csname dblletteredcaption\the\dblloopnum\endcsname% + \csname dblcontinuedcaption\the\dblloopnum\endcsname% + \csname dblletteredcontcaption\the\dblloopnum\endcsname% +\ifredefining% +\xdef\@currentlabel{\thefigure}% +\csname dbllabel\the\dblloopnum\endcsname\fi}% + \vskip\intextfloatskip %% + \vskip-5pt% because there is a space above the top of text, from topskip? +\ifredefining% +\expandafter\gdef\csname dbltopfloat\the\dblloopnum\endcsname{}\fi}% +\else\ifcaptypeplate% +\expandafter\gdef\csname dbltopfloat\the\dblfigandtabnumber\endcsname{% +\vbox{\vskip\PushTwoColTopFig% +\copy\csname dblfigandtabbox\the\dblloopnum\endcsname% + \vskip\captionskip% + \csname dblcaption\the\dblloopnum\endcsname% + \csname dblletteredcaption\the\dblloopnum\endcsname% + \csname dblcontinuedcaption\the\dblloopnum\endcsname% + \csname dblletteredcontcaption\the\dblloopnum\endcsname% +\ifredefining% +\xdef\@currentlabel{\theplate}% +\csname dbllabel\the\dblloopnum\endcsname\fi}% + \vskip\intextfloatskip %% + \vskip-5pt% because there is a space above the top of text, from topskip? +\ifredefining% +\expandafter\gdef\csname dbltopfloat\the\dblloopnum\endcsname{}\fi}% +\else% table +\expandafter\gdef\csname dbltopfloat\the\dblfigandtabnumber\endcsname{% +\vbox{\vskip\PushTwoColTopTab% + \csname dblcaption\the\dblloopnum\endcsname% + \csname dblletteredcaption\the\dblloopnum\endcsname% + \csname dblcontinuedcaption\the\dblloopnum\endcsname% + \csname dblletteredcontcaption\the\dblloopnum\endcsname% + \vskip\captionskip% + \copy\csname dblfigandtabbox\the\dblloopnum\endcsname}% + \vskip\intextfloatskip %% + \vskip-5pt% because there is a space above the top of text, from topskip? +\ifredefining% +\csname dbllabel\the\dblloopnum\endcsname% +\expandafter\gdef\csname dbltopfloat\the\dblloopnum\endcsname{}\fi}% +% +\fi\fi% +% +\else% bottom float +% +\ifcaptypefig% +\expandafter\gdef\csname dblbotfloat\the\dblfigandtabnumber\endcsname{% + \vskip\intextfloatskip% +\vbox{\copy\csname dblfigandtabbox\the\dblloopnum\endcsname% + \vskip\captionskip% + \csname dblcaption\the\dblloopnum\endcsname% + \csname dblletteredcaption\the\dblloopnum\endcsname% + \csname dblcontinuedcaption\the\dblloopnum\endcsname% + \csname dblletteredcontcaption\the\dblloopnum\endcsname% +\ifredefining% +\csname dbllabel\the\dblloopnum\endcsname\fi% +\vskip\PushTwoColBotFig}%??? + \ifredefining% +\expandafter\gdef\csname dblbotfloat\the\dblloopnum\endcsname{}\fi}% +\else% +%% +\ifcaptypeplate% +\expandafter\gdef\csname dblbotfloat\the\dblfigandtabnumber\endcsname{% + \vskip\intextfloatskip% +\vbox{\copy\csname dblfigandtabbox\the\dblloopnum\endcsname% + \vskip\captionskip% + \csname dblcaption\the\dblloopnum\endcsname% + \csname dblletteredcaption\the\dblloopnum\endcsname% + \csname dblcontinuedcaption\the\dblloopnum\endcsname% + \csname dblletteredcontcaption\the\dblloopnum\endcsname% +\ifredefining% +\csname dbllabel\the\dblloopnum\endcsname\fi% +\vskip\PushTwoColBotFig}% + \ifredefining% +\expandafter\gdef\csname dblbotfloat\the\dblloopnum\endcsname{}\fi +}% +\else% table +\expandafter\gdef\csname dblbotfloat\the\dblfigandtabnumber\endcsname{% + \vskip\intextfloatskip +\vbox{% + \csname dblcaption\the\dblloopnum\endcsname% + \csname dblletteredcaption\the\dblloopnum\endcsname% + \csname dblcontinuedcaption\the\dblloopnum\endcsname% + \csname dblletteredcontcaption\the\dblloopnum\endcsname% + \vskip\captionskip +\ifredefining% +\csname dbllabel\the\dblloopnum\endcsname\fi% + \copy\csname dblfigandtabbox\the\dblloopnum\endcsname% +\vskip\PushTwoColBotTab}% +\ifredefining% +\expandafter\gdef\csname dblbotfloat\the\dblloopnum\endcsname{}\fi}% +% +\fi\fi\fi% +%% +\global\advance\dblfigandtabnumber by1 \relax} + +\newbox\dblspanherebox + +\def\dodblfigurehere{\global\setbox\dblspanherebox=\vbox\bgroup +\let\label\saveherelabel +\ifcaptypefig\def\@captype{figure}\else +\ifcaptypeplate\def\@captype{plate}\else +\def\@captype{table}\centering\fi\fi +\vskip\intextfloatskip +\captionwidth=\widecaptionwidth +\hsize=\textwidth +\linewidth=\textwidth +\let\label\saveherelabel +\let\caption\saveherecaption +\let\letteredcaption\savehereletteredcaption +\let\continuedcaption\saveherecontinuedcaption +\let\letteredcontinuedcaption\savehereletteredcontinuedcaption} + +\def\enddodblfigurehere{\vskip\intextfloatskip\egroup% +\aftergroup\endcolsneatly} + + +%% +\def\endcolsneatly{\ifdim\lastskip=2sp +\vskip-9.5pt\null\fi +\endtwocolumns +\vbox{\vskip\intextfloatskip +\captionwidth=\widecaptionwidth +\ifcaptypefig\def\@captype{figure}\else +\ifcaptypeplate\def\@captype{plate}\else +\def\@captype{table}\centering\fi\fi +%\ifappendon +%\let\thefigure\appthefigure +%\let\thetable\appthetable +%\let\theplate\apptheplate +%\let\savecaption\appcaption +%\fi +% +\ifx\thesavedcaption\xrelax +\unvbox\dblspanherebox +\vskip\intextfloatskip +\else + \ifcaptypefig +\unvbox\dblspanherebox + \thesavedcaption +\vskip\intextfloatskip +% + \else +\ifcaptypeplate +\unvbox\dblspanherebox + \thesavedcaption +\vskip\intextfloatskip +% +\else +\vskip\intextfloatskip + \thesavedcaption +\unvbox\dblspanherebox +\vskip\intextfloatskip + \fi +\fi\fi +% +\gdef\thesavedcaption{\relax} +\ifx\thesavedlabel\xrelax\else\savelabel{\thesavedlabel} +\gdef\thesavedlabel{\relax}\fi +\gdef\theletter{\relax} +\vskip\intextfloatskip} +\twocolumns\null +\vskip2sp} + +\def\twolookforposition[#1]{\defone#1*% +\let\go\starttwocolfloat% +\ifgalley% + \if\one p \def\one{s}% + \else% + \def\one{i}% + \fi% +\fi% +\ifjdraft% +\expandafter\ifx\csname setkeys\endcsname\relax\else +\setkeys{Gin}{draft=false}\fi + \if\one p \def\one{s}% + \else% + \def\one{i}% + \fi% +\fi% +%\ifappendon\def\one{h}\fi% +%% +\if\one h% + \ifcaptypeplate% + \else% + \ifcaptypefig% + \dofigmessage% + \else% + \dotabmessage% + \fi% + \fi% + \ifgalley% + \gdef\dbltoporbotfloat{dbltopfloat}% + \else% not galley ==> + \let\go\dodblfigurehere% + \expandafter\gdef\csname endfigure*\endcsname{\enddodblfigurehere}% + \expandafter\gdef\csname endtable*\endcsname{\enddodblfigurehere}% + \expandafter\gdef\csname endplate*\endcsname{\enddodblfigurehere}% + \fi% end ifgalley +\else% + \if\one t% + \gdef\dbltoporbotfloat{dbltopfloat}% + \else% + \if\one b% + \gdef\dbltoporbotfloat{dblbotfloat}% + \else% + \if\one p% + \let\go\startpagefloat% + \expandafter\gdef\csname endfigure*\endcsname{\endpagefloat} + \expandafter\gdef\csname endtable*\endcsname{\endpagefloat} + \expandafter\gdef\csname endplate*\endcsname{\endpagefloat} + \else% + \if\one i% for galley mode + \let\go\dodblfiginsert% + \expandafter\gdef\csname endfigure*\endcsname{\enddblfiginsert} + \expandafter\gdef\csname endtable*\endcsname{\enddblfiginsert} + \expandafter\gdef\csname endplate*\endcsname{\enddblfiginsert} + \else% + \if\one s% for special galley mode, for [p] + \let\go\dodblfiginsert% + \expandafter\gdef\csname endfigure*\endcsname{\endspfiginsert}% + \expandafter\gdef\csname endtable*\endcsname{\endspfiginsert} + \expandafter\gdef\csname endplate*\endcsname{\endspfiginsert} + \else% +\doerr% + \fi% + \fi% + \fi% + \fi% + \fi% +\fi\go}% + +\let\saveenddocument\enddocument + +\def\enddocument{% +\ifdim\ht\dbltopins>0pt\vbox{\unvbox\dbltopins}\fi +\ifdim\ht\dblbotins>0pt\vbox{\unvbox\dblbotins}\fi +\ifnum\pagefloatnumber>\pageloopnum +\newpage +\insertpage{\hsize=\textwidth +\linewidth=\textwidth +\csname pagefloat\the\pageloopnum \endcsname}\fi% +\immediate\write\@auxout{\string\gdef\string\lastpage{\thepage}} +\saveenddocument} + +\splittopskip=\topskip + +\def~{\penalty\@M{ }} + +\def\mathleftline{\vskip-\parskip +\hbox to\textwidth{\hrulefill\hskip.5\textwidth}\vskip-\abovedisplayskip} + +\def\mathrightline{\hbox to\textwidth{\hskip.5\textwidth\hrulefill}\vskip18pt} + +\let\topline\mathleftline +\let\botline\mathrightline + +%% End Two Column Macros +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\let\savefigure\figure +\let\saveendfigure\endfigure + +\def\article{\twocolumns +\bgroup + \renewcommand\thefootnote{}% +\footnotetext{\vbox to 3.7cm{\sectionfont Reserved for Publication Footnotes\vfill}} +\egroup +} +\def\endarticle{\endtwocolumns\newpage +\expandafter\gdef\csname table*\endcsname{\@dblfloat{table}} +\expandafter\gdef\csname endtable*\endcsname{\end@dblfloat} +\expandafter\gdef\csname figure*\endcsname{\@dblfloat{figure}} +\expandafter\gdef\csname endfigure*\endcsname{\end@dblfloat} +\gdef\figure{\futurelet\next\lookforbrac}} + +\def\lookforbrac{\if\next[ +\let\go\figone\else \let\go\figtwo\fi\go} + +\def\figone[#1]{\@float{figure}[#1]\hsize276pt} +\def\figtwo{\@float{figure}\hsize276pt} + + +\newif\ifjdraft +\newdimen\captionwidth +\newdimen\widecaptionwidth +\newif\ifgalley +\let\tabletextsize\normalsize + + + + +\def\inlinefrac#1#2{% + \mbox{\raisebox{.8mm}{% + $\textstyle #1$% + } + $\!\!\! / \!\!\!$ + \raisebox{-.8mm}{$\textstyle #2$}}% + } + +\newcount\tablenoteloopnum +\newcount\tablenotenum + +\def\tablenote#1{\global\advance\tablenotenum by 1\relax +$^{\@fnsymbol{\the\tablenotenum}}$\expandafter\gdef\csname +tabnote\the\tablenotenum\endcsname{#1}} + +\def\tablenotes{\tablenoteloopnum=\tablenotenum +\global\advance\tablenoteloopnum by 1 +\tablenotenum=0 +{\figtextfont +\leftskip=0pt \rightskip=\leftskip +\parfillskip=0pt plus 1 fil +\loop +\vskip2pt +\noindent +\global\advance\tablenotenum by 1 +\ifnum\tablenotenum<\tablenoteloopnum +$^{\@fnsymbol{\the\tablenotenum}}$\csname +tabnote\the\tablenotenum\endcsname +\repeat} +} + +%% convenient macros from author: + + +\def\o{\omega} +\def\pr{\partial} +\def\d{\delta} +\def\a{\alpha} +\def\p{\phi} +\def\dst{\displaystyle} +\def\chit{\tilde{\chi}} +\def\etat{\tilde{\eta}} + +\def\fdb{\mathbb{R}/_{\dst{ \mathbb{Z}}}} +\def\fd{\mathbb{R}/_{\scriptstyle \mathbb{Z}}} +\def\f12{\frac{1}{2}} +\def\fr32{\frac{3}{2}} +\def\vs{\vspace{10pt}} +\def\vsm{\vspace{-10pt}} +\def\xb{\bar{x}} +\def\yb{\bar{y}} +\def\tb{\bar{t}} +\def\xt{\tilde{x}} +\def\yt{\tilde{y}} +\def\gtt{\tilde{g}} +\def\vptt{\tilde{\varphi}} +\def\htt{\tilde{h}} +\def\ktt{\tilde{k}} +\def\ub{\bar{u}} +\def\hb{\bar{h}} +\def\vep{\varepsilon} +\def\vs{\vspace{10pt}} +\def\be{\begin{equation}} +\def\ee{\end{equation}} +\newcommand{\mfrac}[2]{\frac{\displaystyle{#1}}{\displaystyle{#2}}} + + +\newtheorem{theorem}{Theorem} +\newtheorem{lemma}{Lemma} +\newtheorem{corollary}[theorem]{Corollary} +\newtheorem{proposition}[theorem]{Proposition} +\newtheorem{definition}{Def\,inition} +\newtheorem{claim}{Claim} +\newtheorem{conjecture}[theorem]{Conjecture} +\newtheorem{observation}[theorem]{Observation} +\newtheorem{problem}[theorem]{Problem} +\newtheorem{notation}[theorem]{Notation} +\newtheorem{alemma}{Lemma} +\newtheorem{remark}{Remark} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\def\acknowledgments{\vskip14pt\bgroup\footnotesize\baselineskip 8pt +\materialfont +\def\textit##1{{\materialitfont ##1}} +\def\it{\materialitfont} +\def\bf{\materialbffont} +\def\textbf##1{{\materialbffont ##1}} +\noindent{\bf ACKNOWLEDGMENTS.} \relax\ignorespaces} +\def\endacknowledgments{\vskip1sp\egroup} + +%% Just in case author enters any of the below, it will still work correctly +\let\acknowledgment\acknowledgements +\let\endacknowledgment\endacknowledgments + +\let\acknowledgement\acknowledgements +\let\endacknowledgement\endacknowledgments + +\let\acknowledgements\acknowledgements +\let\endacknowledgements\endacknowledgments + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% April 25, 2006 +\let\dospecialaccents\relax +\def\blackbox#1{} + +% turn off side squares +\def\dosidesquare#1#2#3{} +\let\resetsidesquares\relax +\let\makesidesquares\relax +\newif\iffirsttime + +\def\thanks#1{\footnotemark \protected@xdef \@thanks +{\@thanks \protect \footnotetext [\the \c@footnote ]{\hsize=247pt\relax #1}}} + +%% Keywords +{\global\let\saveline| +\gdef\linewithspace{\hskip3pt$\saveline$\hskip6pt} +\catcode`|=\active +\gdef\keywords{\bgroup\catcode`|=\active\xkeywords} +\gdef\xkeywords#1{\vskip1sp\noindent{\let|=\linewithspace +\affilfont#1}\vskip11pt\egroup} +} + +\def\abbreviations#1{\vskip1sp\noindent{\affilfont Abbreviations: #1}\vskip12pt} + +%% Authors can change this dimension to move the +%% printed page up or down on the physical page. Making +%% the negative dimension larger will move it up on the +%% page, smaller will move it down. + +\voffset-.75in + +%%% Default copyright year +\copyrightyear{2007} + +\def\conflictofinterest#1{{\let\@thefnmark\relax\@footnotetext{\vrule height8pt width0pt\relax\hsize=247pt +\relax\footnotesize\footnotefont #1\vrule depth 6pt width0pt}}} + +\def\footcomment#1{{\let\@thefnmark\relax\@footnotetext{\vrule height8pt width0pt\relax\hsize=247pt\relax\footnotesize\footnotefont #1\vrule depth 6pt width0pt}}} + +\def\track#1{\footcomment{#1}} + +\url{www.pnas.org --- ---} +\issuedate{Issue Date} +\copyrightyear{2007} +\volume{Volume} +\issuenumber{Issue Number} +%\setcounter{page}{2687} +\footlineauthor{Footline Author} + +\long\def\@footnotetext#1{\insert\footins{% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces\footnotefont +\hsize=247pt +#1\@finalstrut\strutbox}% + \color@endgroup}}% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Special Use Fonts +%% + +%% Computer Modern font calls. These will be redefined +%% if PostScript fonts are used, \usepackage{pnastwof} + +%% Times-Roman +\def\timesroman{cmr10 } +\def\timesbold{cmbx10 } +\def\timesitalic{cmti10 } +\def\timesbolditalic{cmbx10 } + +%% Helvetica +\def\helvetica{cmss10 } +\def\helveticabold{cmssbx10 } +\def\helveticaboldoblique{cmssbx10 } +\def\helveticaoblique{cmssi10 } + +\def\frutiger{cmss10 } +\def\frutigermed{cmss10 } +\def\frutigerbold{cmssbx10 } +\def\frutigerboldoblique{cmssi10 } +\def\frutigeroblique{cmssi10 } + +\let\frutigerboldcondensed\helveticabold + +%% Special Use Fonts ==>> + + +\font\footnotefont\helvetica at 6pt + +\font\dropcapfont=\frutigerbold at 26pt +\font\sideboxfont= \helvetica at 6pt + +%% Running feet + \font\footlinefont=\frutiger at7pt + \font\footlineit=\helveticaoblique at7pt + \font\foliofont=\frutigerbold at 7pt + +\font\titlefont=\frutigerboldcondensed at 22pt % 24pt baseline + \font\authorfont=\frutigerbold at 9pt % 11 pt baseline + \font\affilfont=\frutiger at 7pt % 8pt baseline + + + \font\copyrightfont=\frutiger at 6pt + \font\copyrighttextfont=\frutiger at 6pt + +%% Abstract fonts +\font\xabstractfont=\frutigerbold at 8pt +\def\abstractfont{\sf\xabstractfont\dospecialaccents} +\font\abstractit=\helveticaboldoblique at 8pt + +%% Section fonts +\font\sectionfont=\frutigerbold at 10pt +\font\subsectionfont=\frutigerbold at9pt + +%% Theorem fonts + \font\theoremfont=\frutigerbold at 8pt + +%ok +%% Caption + \font\fignumfont=\frutigerbold at 9pt +\font\xfigtextfont=\frutiger at 7pt + \def\figtextfont{\small\dospecialaccents\xfigtextfont} + +%% Table font +\font\tabletextfont=\frutiger at 9pt +\font\tabtextfont\frutigerbold at 9pt +\font\tabnumfont\frutigerbold at 9pt + +%% Materials and Methods Fonts +\font\materialfont=\frutiger at 7pt +\font\materialbffont=\helveticabold at 7pt +\font\materialitfont=\helveticaboldoblique at 7pt + +%% Bibliography fonts +\font\xbibfont=\frutigerbold at 6pt +\def\bibfont{\sf\xbibfont\dospecialaccents} +\font\bibitfont\helveticaboldoblique at 6pt +\font\bibbffont\helveticabold at 6pt + +%% dec 4, 2006 +\def\@tabular{\global\tablenotenum=0\relax +\leavevmode \hbox \bgroup $\let\@acol\@tabacol + \let\@classz\@tabclassz + \let\@classiv\@tabclassiv \let\\\@tabularcr\@tabarray} + +%% dec 4, 2006 +\def\@tabular{\global\tablenotenum=0\relax +\leavevmode \hbox \bgroup $\let\@acol\@tabacol + \let\@classz\@tabclassz + \let\@classiv\@tabclassiv \let\\\@tabularcr\@tabarray} + +%%%%%%% Jan 2008 Changes: + \def\materials{\vskip6pt\bgroup +\parskip=8pt +\baselineskip=9pt +\materialfont +\def\textit##1{{\materialitfont ##1}} +\def\it{\materialitfont} +\def\bf{\materialbffont} +\def\textbf##1{{\materialbffont ##1}} +\def\section##1{\noindent{\materialbffont ##1. }} +\def\subsection##1{\noindent{\materialbffont ##1. }} +\noindent {\subsectionfont Materials and Methods}\\[2pt] +} +\def\endmaterials{\vskip1sp\egroup} + + +\def\appendix{\originalappendix +\vskip12pt\noindent{\subsectionfont Appendix}\@ifnextchar[{\xappendix}{\yappendix}} + +\def\xappendix[#1]{\subsectionfont:\hskip10pt\relax #1\vskip2pt +\normalsize\noindent\ignorespaces} +\def\yappendix{\vskip2pt\normalsize\noindent\ignorespaces} + +\widowpenalty=10000 +\clubpenalty=10000 + +\newbox\tablewide +\def\endtabular{\crcr\egroup\egroup $\egroup\egroup +\centerline{\vbox{\hsize\wd\tablewide +\currtabcaption\vskip1pt +}} +\dimen0=\wd\tablewide +\centerline{\hbox{\unhbox\tablewide}} +\centerline{\vtop{\hsize=\dimen0 \tablenotes}} +\global\let\currtabcaption\relax} + +\expandafter \let \csname endtabular*\endcsname = \endtabular + +\def\tabular{\global\setbox\tablewide\hbox\bgroup +\let\@halignto\@empty\@tabular} + +\@namedef{tabular*}#1{% +\global\setbox\tablewide\hbox\bgroup + \setlength\dimen@{#1}% + \edef\@halignto{to\the\dimen@}\@tabular} + +\newcommand\originalappendix{\par + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \gdef\thesection{\@Alph\c@section}} + +\let\currtabcaption\relax + + +\def\footcomment#1{\typeout{^^J^^J The \string\footcomment{}\space command is +No Longer Used^^J^^J}} + +\def\track#1{\typeout{^^J^^J The \string\track{}\space command is +No Longer Used^^J^^J}} + +\def\conflictofinterest#1{\typeout{^^J^^J The \string\conflictofinterest{}\space command is +No Longer Used^^J^^J}} + +%% nothing will happen, so PNAS can get info, but nothing will be printed +\def\nothanks#1{} + +\let\thanks\nothanks + + +% substitute for \footcomment: + +\def\abbreviations#1{\vskip1sp\noindent{\affilfont Abbreviations: #1} +\vskip12pt} +\endinput +Change Log: +October 18, 2006 +Changed the counter used in loop in maketitle to +fix bug that prevented all affiliations from being +listed; added $\saveline$ to make line work right +in keywords + +dec 4, 2006: fixed bug in table notes, by +resetting tablenotenum every time tabular +is used + +%\def\currversion{October 18, 2006} +%\def\currversion{July 10, 2006} +%\def\currversion{May 1, 2006} +%\def\currversion{August 27, 2004} \ No newline at end of file