% Baskerville.cls:
%   Adrian Clark
%   Sue Brooks
%   Sebastan Rahtz
%
% based on the original LaTeX ARTICLE DOCUMENT STYLE
%
%    for LaTeX2e
%
% 29.5.94 added ISSN
% 2.6.94  corrected \ukt\ macro
% 7.6.94  centered captions
% 15.8.94 changed editor names etc
% 2.11.94 use Alan Jeffrey's code for paths, emails, URLs etc
%    from faq.sty
%         put PA address in mast head
%  Journals use two-sided printing.
% 1.12.94 cleaned again for FAQ issue.
% 6.12.94 more little fixes for FAQ issue
% 14.3.95 parameterized date
% 12.6.95 removed JF
% 8.95 worked on to make HH run. color and array need to go back
% 1996/02/06 DPC 
%   Added fontmatter and submissiondates environments
%   Added \BASKed \BASKed* \BASKyear \BASKmonth
%   \BASKtitle \BASKheadparone and \BASKheadpartwo
%   commands set the `fixed' texts on the masthead.

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{baskerv}[1997/05/07 v3.12a Baskerville newsletter class]
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions
\LoadClass{article}
\RequirePackage{latexsym}
\RequirePackage{array}
\RequirePackage{longtable}
% This package is *required* if we're using baskerville
\RequirePackage[cm,mbvx]{ltx-logo}
%
\RequirePackage{xspace}
%
\let\FAQverbFamily\ttfamily
\DeclareRobustCommand{\FAQverb}[2]{{%
    \ifvmode\leavevmode\fi
    \lefthyphenmin=256\setlanguage\language
    \FAQverbFamily\hyphenchar\the\font`#1\relax
    \def\@tempa{#2}%
    \expandafter\@faq@strip\meaning\@tempa\@faq@strip
    \hyphenchar\the\font\m@ne
}\setlanguage\language}
\def\@faq@strip#1->#2\@faq@strip{#2}
%
% Document markup:
%
%\makeatother   % because @ is a delimiter here, it had better have the
%               % same catcode as it will when the macro's invoked
%\def\Email|#1@#2|{\FAQverb\-{#1@}\penalty10\FAQverb\.{#2}} % email
%\makeatletter
%\def\FTP|#1|{\FAQverb\.{#1}}                               % FTP site
%\def\File|#1|{\FAQverb\/{#1}}                              % file name
%\def\CTAN{\FAQverb\/}                                      % CTAN path
%\def\Newsgroup|#1|{\FAQverb\.{#1}}                         % newsgroup
%\let\URL\url
%\def\URL|#1://#2/#3|{\FAQverb\.{#1://#2/}\penalty10\FAQverb\/{#3}}
%\def\path|#1|{\FAQverb\/{#1}}                              % generic path
\RequirePackage{url}
\let\File\path % for compatibility with old files
\let\URL\url
\let\Newsgroup\url
\providecommand\acro[1]{\textsmaller{#1}\@}
\providecommand\Dash{\nobreak\thinspace---\thinspace}
\providecommand\dash{\nobreak\thinspace--\thinspace}
\providecommand\tub{\textsl{TUGboat}}
\providecommand\BV{\emph{Baskerville}}
\providecommand\uktug{\textsc{uk}\acro{TUG}}
\providecommand\LaTeXo{\LaTeX\,2.09}
\providecommand\CDROM{\acro{CD}-\acro{ROM}}
\providecommand\FAQ{\acro{FAQ}}
\def\CTAN{\acro{CTAN}}
\def\PDF{\acro{PDF}}
\def\DVI{\acro{DVI}}

%
% Create the Article environment (if it doesn't already exist) on the
% ground 
\@ifundefined{Article}{%
  \newenvironment{Article}{\maketitle}{}%
  \let\BV@@title\title
  \renewcommand\title[2][]{\BV@@title{#2}}}%
  {}
%
% commands to typeset commands
%
% just the cs name
\@ifundefined{cs}{%
  \DeclareRobustCommand\cs[1]{%
    \texttt{%
      \expandafter\string\csname#1\endcsname}}%
  }{}
%
% a command with its formal parameters
\@ifundefined{cmd}{%
  \DeclareRobustCommand\cmd{%
    \begingroup
    \ttfamily\selectfont
    \makeatletter
    \BV@cmd@arg
    }
  \newcommand\BV@cmd@arg[1]{%
    \string#1%
    \futurelet\@tempa\BV@cmd@a
    }
  \def\BV@cmd@a{%
    \ifx\@tempa\bgroup
      \expandafter\BV@cmd@marg
    \else
      \ifx\@tempa[% ]
        \expandafter\BV@cmd@oarg
      \else
        \expandafter\endgroup
      \fi
    \fi
    }
  \def\BV@cmd@marg#1{%
    \char`\{%
    {%
      \rmfamily\itshape\selectfont
      #1%
      }%
    \char`\}
    \futurelet\@tempa\BV@cmd@a
    }
  \def\BV@cmd@oarg[#1]{%
    \char`\[%
    {%
      \rmfamily\itshape\selectfont
      #1%
      }%
    \char`\]%
    \futurelet\@tempa\BV@cmd@a
    }
  }% \cmd undefined
  {}
%
% define a poor-man's version of the \meta used in doc.sty.  Perhaps
% some day we'll need the full McCoy...
\providecommand\meta[1]{%
  \ensuremath{\langle}\emph{#1}\ensuremath{\rangle}}
\RequirePackage[T1]{fontenc}

%\DeclareFontShape{T1}{mbvx}{m}{sl}{<->ssub * mbvx/m/it}{}
\usepackage{ae}%em
\renewcommand{\rmdefault}{mbvx}
\renewcommand{\sfdefault}{aess}
\renewcommand{\ttdefault}{aett}
\fontfamily{mbvx}\selectfont
\RequirePackage{graphics}
\RequirePackage{color}
\RequirePackage{multicol}
\RequirePackage{mflogo}
\RequirePackage{pifont}

%
% \acro command and other size juggling
\RequirePackage{relsize}
\providecommand\acro[1]{\textsmaller{#1}\@}

%\RequirePackage{footcols}
\newcommand\bs{{\ttfamily\upshape\char'134}}
%\def\arraybackslash{\let\\=\@arraycr}
%\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}}
%\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\lineskip 1\p@
\normallineskip 1\p@
\def\baselinestretch{1}
\renewcommand\normalsize{%
   \@setfontsize\normalsize\@xpt\@xiipt
   \abovedisplayskip 8\p@ \@plus1\p@ \@minus1\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 4\p@ \@plus3\p@ 
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI}
\let\@normalsize\normalsize
\normalsize
\renewcommand\small{%
   \@setfontsize\small\@ixpt{10.5}%
   \abovedisplayskip 4\p@ \@plus1\p@ \@minus1\p@
   \abovedisplayshortskip 4\p@ \@plus1\p@
   \belowdisplayshortskip \abovedisplayshortskip 
   \def\@listi{\leftmargin\leftmargini
               \topsep 2\p@ \@plus1\p@ \@minus1\p@
               \parsep \z@
               \itemsep 2\p@}%
   \belowdisplayskip \abovedisplayskip
}
\renewcommand\footnotesize{%
   \@setfontsize\footnotesize\@viiipt{9}%
   \abovedisplayskip 4\p@ \@plus1\p@ \@minus1\p@
   \abovedisplayshortskip \z@ \@plus\p@
   \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 1\p@ \@plus1\p@ \@minus1\p@
               \parsep \z@
               \itemsep 2\p@}%
   \belowdisplayskip \abovedisplayskip
}
\renewcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
\renewcommand\tiny{\@setfontsize\tiny\@vpt\@vipt}
\renewcommand\large{\@setfontsize\large\@xipt{12}}
\renewcommand\Large{\@setfontsize\Large\@xiipt{14}}
\renewcommand\LARGE{\@setfontsize\LARGE\@xivpt{17}}
\renewcommand\huge{\@setfontsize\huge\@xviipt{20}}
\renewcommand\Huge{\@setfontsize\Huge\@xxpt{30}}
\normalsize
\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}

%  ****************************************
%  *            PAGE LAYOUT               *
%  ****************************************
%
% SIDE MARGINS:
\oddsidemargin -2.5pc \evensidemargin -2.5pc
\marginparwidth      4pc       % don't use marginal notes...
\marginparsep      0.5pc       % ...in the UK TUG newsletter

% VERTICAL SPACING:
\topmargin -3pc
\headheight 12\p@
\headsep    15\p@
\topskip    10\p@
\footskip   15\p@

% DIMENSION OF TEXT:

\textheight        250mm      % height of text on a page (A4 paper)
\textwidth         180mm      % total width of a page
\columnseprule     0.5\p@     % width of line in the inter-column gutter
\columnsep         10mm       % space between columns
\tolerance         9999       % make those columns justify

% FOOTNOTES:
\footnotesep 6\p@
\skip\footins 19.5\p@ plus 12\p@ \@minus 1\p@

% FLOATS:
\floatsep 12\p@ plus 5.5\p@ \@minus 1\p@
\textfloatsep 15\p@ plus 4.5\p@ \@minus 3\p@
\intextsep 12\p@ plus 5.5\p@ \@minus 2\p@
\dblfloatsep 12\p@ plus 5.5\p@ \@minus 2\p@
\dbltextfloatsep 15\p@ plus 4.5\p@ \@minus 3\p@
\@fptop 0\p@ plus 0fil
\@fpsep 12\p@ plus 0fil
\@fpbot 0\p@ plus 3fil
\@dblfptop 0\p@ plus 0fil
\@dblfpsep 12\p@ plus 0fil
\@dblfpbot 0\p@ plus 3fil
\marginparpush 5\p@

%  ****************************************
%  *           PARAGRAPHING               *
%  ****************************************
%
\parindent 12\p@
\parskip \z@ plus .1\p@
\partopsep 0\p@ plus 1\p@
\@lowpenalty   51
\@medpenalty  151
\@highpenalty 301
\@beginparpenalty -\@lowpenalty
\@endparpenalty -\@lowpenalty
\@itempenalty -\@lowpenalty
\clubpenalty=0
\widowpenalty=10000

%  ****************************************
%  *               SKIPS                  *
%  ****************************************
%
\newskip\@indentskip
\newskip\smallindent
\newskip\@footindent
\newskip\@leftskip
\@indentskip=1.25pc
\smallindent=\parindent
\@footindent=\smallindent
\@leftskip=\z@


%  ****************************************
%  *               SECTIONS               *
%  ****************************************
%
\def\Section{\@startsection{newarticle}{0}{\z@}
  {-24\p@ \@plus -12\p@ \@minus -.1\p@}
  {12\p@ \@plus 1\p@}
  {\raggedright\Large\bfseries}}
\def\SSection{\@startsection{newarticle}{0}{\z@}
 {-24\p@ \@plus -12\p@ \@minus -.1\p@}
%  {-10\p@ \@plus -5\p@ \@minus -.1\p@}
  {12\p@ \@plus 1\p@}
  {\raggedright\Large\bfseries}[\@title]}
\def\section{%\typeout{** section!}%
\@startsection {section}{1}{\z@}
 {-12\p@ \@plus -6\p@ \@minus -.1\p@}
 {6\p@}
 {\raggedright\large\bfseries}}
\def\subsection{\@startsection{subsection}{2}{\z@}
 {-4\p@ \@plus -2\p@ \@minus -.1\p@}
 {0.1\p@ \@plus 2\p@}
 {\raggedright\normalsize\itshape}}
\def\subsubsection{\@startsection{subsubsection}{3}{\z@}
 {-6\p@ \@plus -3\p@ \@minus -1\p@}
 {0.1\p@ \@plus 2\p@}
 {\raggedright\normalsize\it}}
\def\paragraph{\@startsection{paragraph}{4}{\z@}
 {12\p@ \@plus 2.25\p@ \@minus -1\p@}
 {-0.5em}
 {\normalsize\bfseries}}
\def\subparagraph{\@startsection{subparagraph}{5}{\z@}
 {12\p@ \@plus 2.25\p@ \@minus 1\p@}
 {-0.5em}
 {\normalsize\it}}
\setcounter{secnumdepth}{-1}
%
\def\appendix{\par
 \setcounter{section}{0}
 \setcounter{subsection}{0}
 \def\thesection{\Alph{section}}}

%  ****************************************
%  *       PARTS & SECTIONS NUMBERS       *
%  ****************************************
%
\newcounter{newarticle}
\@newctr{section}[newarticle]
\def\thenewarticle    {\Alph{newarticle}}

%  ****************************************
%  *                LISTS                 *
%  ****************************************
%
\leftmargini   \@indentskip
\leftmarginii  1pc
\leftmarginiii 1pc
\leftmarginiv  1pc
\leftmarginv   1pc
\leftmarginvi  1pc
\leftmargin\leftmargini
\labelsep 0.5em
\labelwidth\leftmargini\advance\labelwidth-\labelsep
%
% label macros for Range-Left and Range-Right labels
\def\makeRLlabel#1{\rlap{#1}\hss}
\def\makeRRlabel#1{\hss\llap{#1}}
%
\def\@listI{\leftmargin\leftmargini
 \parsep \z@
 \topsep 2\p@ \@plus 1\p@ \@minus 1\p@
 \itemsep \z@ \@plus .1\p@
}
\let\@listi\@listI
\@listi
\def\@listii{\leftmargin\leftmarginii
 \labelwidth\leftmarginii\advance\labelwidth-\labelsep
 \topsep 2\p@ \@plus 1\p@ \@minus 1\p@
 \parsep \z@
 \itemsep \z@ \@plus .1\p@
}
\def\@listiii{\leftmargin\leftmarginiii
 \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
 \topsep 1\p@ \@plus 1\p@ \@minus 1\p@
 \parsep \z@
 \partopsep \z@
 \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
}
%
% ITEMIZE
\def\itemize{\ifnum \@itemdepth >3 \@toodeep
  \else \advance\@itemdepth \@ne
   \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
   \list{\csname\@itemitem\endcsname}%
    {\let\makelabel\makeRRlabel}%
  \fi}
\def\labelitemi{$\bullet$}
\def\labelitemii{--}
\def\labelitemiii{$\cdot$}
\def\labelitemiv{*}
%
% ENUMERATE with optional argument to set left margin...
\def\enumerate{\ifnum \@enumdepth >3 \@toodeep \else
  \advance\@enumdepth \@ne
  \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
 \fi
 \@ifnextchar [{\@enumeratetwo}{\@enumerateone}%
}
\def\@enumeratetwo[#1]{%
 \list{\csname label\@enumctr\endcsname}%
  {\settowidth\labelwidth{[#1]}
   \leftmargin\labelwidth \advance\leftmargin\labelsep
   \usecounter{\@enumctr}
   \let\makelabel\makeRRlabel}
}
\def\@enumerateone{%
 \list{\csname label\@enumctr\endcsname}%
  {\usecounter{\@enumctr}
   \let\makelabel\makeRRlabel}}
%
\def\labelenumi{\theenumi}
\def\theenumi{\arabic{enumi}.}
\def\labelenumii{(\theenumii)}
\def\theenumii{\alph{enumii}}
\def\p@enumii{\theenumi}
\def\labelenumiii{\theenumiii}
\def\theenumiii{\roman{enumiii}}
\def\p@enumiii{\theenumi(\theenumii)}
\def\labelenumiv{\theenumiv}
\def\theenumiv{\Alph{enumiv}}
\def\p@enumiv{\p@enumiii\theenumiii}
% ARRAY AND TABULAR
%
\arraycolsep   5\p@
\tabcolsep     6\p@
\arrayrulewidth .5\p@
\doublerulesep 1.5\p@

%  ****************************************
%  *         TITLES AND ABSTRACT           *
%  ****************************************
%

%% Volume Number (ie Year - 1990)
\def\BASKvol#1{\gdef\BASK@vol{#1}}
\BASKvol{?}

%% Issue Number (ie Month/2, roughly)
\def\BASKno#1{\gdef\BASK@no{#1}}
\BASKno{?}

% Editor, Star form for Guest editor
\def\BASKed{\@ifstar{\BASK@ed{Guest }}{\BASK@ed{}}}
\def\BASK@ed#1#2{\gdef\BASK@editor{#1Editor: #2}}
\BASKed{????????}

%% Year (4 digits)
\def\BASKyear#1{\gdef\thisyear{#1}}
\BASKyear{????}

% Month (as a Word)
\def\BASKmonth#1{\gdef\thismonth{#1}}
\BASKmonth{?????}

\def\makeBSKtitle{\par
 \begingroup
  \vspace*{-\headheight}%
   \@maketitle
   \bigskip\hrule\bigskip
  \thispagestyle{plain}
 \endgroup
 \let\maketitle\relax
 \let\@maketitle\relax
}
\newbox\BSKbox
\def\@maketitle{%
  \centerline{\BASK@titleline}%
  \medskip
  \hbox to \textwidth{\bfseries The Annals of the UK \TeX\ Users
  Group\hfill \BASK@editor\hfill Vol.~\BASK@vol\ No.~\BASK@no}%
  \smallskip\hbox to \textwidth{\bfseries ISSN 1354--5930
  \hfill \thismonth\ \thisyear}%
  \medskip
  \noindent\ignorespaces
  \BASK@headparone}

% The frontmatter environment should contain a sequence of article
% environments that are run into two columns. It inserts the masthead
% across both columns, and the table of contents at the start of
% column one.
\def\frontmatter{%
  \vspace*{-1cm}% Would make more sense to incorporate this into
                % \maketitle, but leave it like this for compat.
  \begin{multicols}{2}[\makeBSKtitle]%
  \tableofcontents}
\def\endfrontmatter{%
  \end{multicols}}


% The Journal title command.
% You probably only want to change this if you want to use a design-size
% font rather than let \scaletowidth scale for some special issue.
\def\BASKtitle#1{\gdef\BASK@titleline{#1}}
\let\scaletowidth=\resizebox% added by Sean K. Harbour for Textures
\BASKtitle{%
  \bfseries
  \scaletowidth{\textwidth}{!}{% modified by Sean K. Harbour
    B\,a\,s\,k\,e\,r\,v\,i\,l\,l\,e}}


% The first paragraph. Needs to be reset if a special issue used a
% different font set.
\def\BASKheadparone#1{\gdef\BASK@headparone{#1}}
\BASKheadparone{%
\BV\ is set in Monotype
Baskerville, with Computer Modern Typewriter for literal
text, and printed on a Xerox Docutech. Production and distribution is
undertaken in Cambridge by Robin Fairbairns. }

\def\and{\end{tabular}\vskip 6pt\par
 \begin{tabular}[t]{@{}l@{}}}
%
\def\abstract{\@abstract}
\def\endabstract{\end{quote}}
\def\@abstract{\subsection*{Summary}\begin{quote}}

%  ****************************************
%  *            PAGE STYLES               *
%  ****************************************
%
\mark{{}{}}
\gdef\@author{}
\def\author{\@ifnextchar [{\@authortwo}{\@authorone}}
\def\@authortwo[#1]#2{\gdef\@author{#2}\gdef\@shortauthor{#1}}
\def\@authorone#1{\gdef\@author{#1}\gdef\@shortauthor{#1}}
\gdef\@shortauthor{Dummy Author}
\gdef\@title{}
\gdef\@longtitle{}
\def\title{\@ifnextchar [{\@titletwo}{\@titleone}}
\def\@titletwo[#1]#2{\gdef\@title{#1}\gdef\@longtitle{#2}}
\def\@titleone#1{\gdef\@title{#1}\gdef\@longtitle{#1}}
\gdef\@longtitle{Dummy Title}

%
% \ps@empty defined in LATEX.TEX
%
\def\ps@plain{\let\@mkboth\markboth
 \def\@oddhead{}
 \def\@evenhead{}
 \def\@oddfoot{\rm \hfil --\thepage--\hfil}
 \def\@evenfoot{\rm \hfil --\thepage--\hfil}
}
\def\ps@headings{\let\@mkboth\markboth
 \def\@oddhead{\hfill\emph{\@title}\hfill}
 \def\@oddfoot{\rm \hfil --\thepage--\hfil}
 \def\@evenhead{\it Baskerville \hfill 
                    Volume \BASK@vol, Number \BASK@no}
 \def\@evenfoot{\rm \hfil --\thepage--\hfil}
}
\def\ps@myheadings{\let\@mkboth\@gobbletwo
 \def\@oddhead{\it\@shortauthor \hfill \@title}
 \def\@oddfoot{\rm \hfil --\thepage--\hfil}
 \def\@evenhead{\it Baskerville \hfill 
                    Volume \BASK@vol, Number \BASK@no}
 \def\@evenfoot{\rm \hfil --\thepage--\hfil}
 \def\sectionmark##1{}
 \def\subsectionmark##1{}}

%  ****************************************
%  *         TABLE OF CONTENTS, ETC.      *
%  ****************************************
%
\def\@pnumwidth{1.4pc}
\def\@tocrmarg {2pc}
\def\@dotsep{10}
\setcounter{tocdepth}{0}
%\def\tableofcontents{\@restonecolfalse
% \if@twocolumn\@restonecoltrue\onecolumn\fi
% \section*{Contents} \@starttoc{toc}
% \if@restonecol\twocolumn\fi \par\vspace{12\p@}}
\def\tableofcontents{\Section*{Contents}\@starttoc{toc}}
\def\l@part#1#2{\addpenalty{-\@highpenalty}
 \addvspace{2.25em \@plus 1\p@}
 \begingroup
  \parindent \z@ \rightskip \@pnumwidth
  \parfillskip -\@pnumwidth
  {\normalsize\rm
   \leavevmode \hspace*{3pc}
   #1\hfil \hbox to\@pnumwidth{\hss \ }}\par
   \nobreak \global\@nobreaktrue
   \everypar{\global\@nobreakfalse\everypar{}}\endgroup}
\def\dotfil{%
  \cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfil\kern\z@}
\def\l@newarticle#1#2{\addpenalty{\@secpenalty}
%   \addvspace{1.0em \@plus 1\p@}
   \@tempdima 1.5em  % width of box holding section number
   \begingroup
     \parindent \z@ \rightskip \@pnumwidth
     \parfillskip -\@pnumwidth
     \leavevmode
     #1\dotfil \hbox to\@pnumwidth{\hss #2}\par
   \endgroup}
\def\l@section{\@dottedtocline{1}{2em}{1.5em}}
\def\l@subsection{\@dottedtocline{2}{2.5em}{2.3em}}
\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
\def\listoffigures{\@restonecolfalse
 \if@twocolumn\@restonecoltrue\onecolumn\fi
 \section*{List of Figures\@mkboth{List of Figures}{List of Figures}}
 \@starttoc{lof} \if@restonecol\twocolumn\fi}
\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
\def\listoftables{\@restonecolfalse
 \if@twocolumn\@restonecoltrue\onecolumn\fi
 \section*{List of Tables\@mkboth{List of Tables}{List of Tables}}
 \@starttoc{lot} \if@restonecol\twocolumn\fi}
\let\l@table\l@figure

%  ****************************************
%  *             BIBLIOGRAPHY             *
%  ****************************************
%
\def\thebibliography#1{\section*{\refname}
 \small
\list
 {\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}%
    \leftmargin\labelwidth
    \advance\leftmargin\labelsep
     \usecounter{enumiv}%
    \let\p@enumiv\@empty
    \def\theenumiv{\arabic{enumiv}}}%
    \def\newblock{\hskip .11em plus.33em minus.07em}%
    \parskip\z@ \@plus .1pt\relax
    \clubpenalty4000\widowpenalty4000\sfcode`\.=1000\relax}
\def\refname{References}
\def\endthebibliography{%
  \def\@noitemerr{\@warning{Empty `thebibliography' environment}}%
  \endlist}

\setcounter{topnumber}{2}
\def\topfraction{.9}
\setcounter{bottomnumber}{1}
\def\bottomfraction{.9}
\setcounter{totalnumber}{3}
\def\textfraction{.1}
\def\floatpagefraction{.75}
\setcounter{dbltopnumber}{2}
\def\dbltopfraction{.9}
\def\dblfloatpagefraction{.75}

\long\def\@makecaption#1#2{\vskip 6\p@
 \setbox\@tempboxa\hbox{\small{\bfseries #1.} #2}
 \ifdim \wd\@tempboxa >.8\hsize
   \hbox to\hsize{%
        \hfill\parbox{.8\hsize}{\small{\bfseries #1.} #2\par}\hfill}
 \else
  \hbox to\hsize{\hfill\box\@tempboxa\hfill}
 \fi
 \vskip 6\p@
}


% --- -----------------------------------------------------------------
% --- Shorthands for non-English abbreviations and words.
% --- -----------------------------------------------------------------

\def\foreign{\em}
\def\etc{{\foreign etc.}}                       % etc.
\def\eg{{\foreign e.g.~}\ignorespaces}          % e.g.
\def\egc{{\foreign e.g.,~}\ignorespaces}        % e.g.,
\def\ie{{\foreign i.e.~}\ignorespaces}          % i.e.
\def\iec{{\foreign i.e.,~}\ignorespaces}        % i.e.,

% --- -----------------------------------------------------------------
% --- Tex-related mnemonics.
% --- -----------------------------------------------------------------


\def\La{\protect\p@La}
\def\p@La{L%
           {\setbox0\hbox{T}%
            \setbox2\vbox to\ht0{\kern.07ex\hbox{%
               \csname S@\f@size\endcsname
                               \math@fontsfalse
                               \fontsize\sf@size\z@\selectfont
                               A}%
                         \vss}%
           \kern-.5\wd2
           \box2
          }}
\def\AllTeX{(\La)\TeX}
\def\AmSTeX{%
  $\mathcal{A}\kern-.1667em\lower.5ex\hbox{$\mathcal{M}$}%
  \kern-.125em S$\TeX}
\def\LamsTeX{$\mathcal{L}\mathcal{A}%
\kern-.1667em\lower.5ex\hbox{$\mathcal{M}$}\kern-.125em S$\TeX}
\def\BibTeX{{\rmfamily B\kern-.05em\textsc{i\kern-.025em b}\kern-.08em\TeX}}
\def\INRStex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX}
\def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}}
\def\LAMSTeX{L\kern -0.4 em \raise 0.3 ex \hbox {$\scriptstyle \mathcal{A}$}%
     \kern -0.25 em \lower 0.4 ex \hbox {$\cal M$}%
     \kern -0.1 em \hbox {$\mathcal{S}$}-\TeX}
\def\AMSLaTeX{{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox{$\mathcal{M}$}\kern-.125em
     $\mathcal{S}$-\LaTeX}}
\def\AMS{{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox{$\mathcal{M}$}\kern-.125em
     $\mathcal{S}$}}
\def\MakeIndex{{\itshape MakeIndex}}
\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
\def\PiCTeX{\PiC\kern-.11em\TeX}
% SliTeX from the SliTeX Documentation
\def\SLiTeX{%
  S\kern-.065em L\kern-.18em\raise.32ex\hbox{\textsc{i}}%
  \kern-.03em\TeX}
\let\SliTeX\SLiTeX
\def\POBox{P.\thinspace O.~Box }
\def\TeXhax{\TeX hax}
\def\TeXXeT{\TeX--X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT}
\def\TUB{\emph{TUGboat}}
\def\DVI{\texttt{dvi}}
\def\VF{\textsc{vf}}
\def\BV{\emph{Baskerville}}
\def\UKTUG{UK \TeX\ Users Group}
\def\ukt{{\footnotesize UK}TUG}
\let\shortuktug\ukt
\def\PS{\textsc{PostScript}}
\newcommand{\payuk}{UK TeX Users Group}
\newcommand{\Newline}{\\[0.7\baselineskip]}
\newcommand{\FullLine}[1]{%
   \makebox[\linewidth][l]{#1\hrulefill}\Newline}
\newcommand{\HalfLine}[1]{%
   \makebox[0.5\linewidth][l]{#1\hrulefill}}

\def\Dash{---}


% --- -----------------------------------------------------------------
% --- Additional commands.
% --- -----------------------------------------------------------------

\let\maketitle\make@articletitle
\def\make@articletitle{\Section[\@title]{\@longtitle}}

% article is for smaller articles with single-column titles.
\def\article{%
 \setcounter{figure}{0}%
 \setcounter{table}{0}%
 \Section[\@title]{\@longtitle}%
 \let\maketitle\relax
 \markright{\@shortauthor\hfill\@longtitle}%
}
%
% Article is when the title is double column
\def\Article{%
 \setcounter{figure}{0}%
 \setcounter{table}{0}%
 \begin{multicols}{2}[\SSection{\@longtitle}]%
 \let\maketitle\relax
 \markright{\@shortauthor\hfill\@longtitle}%
}
% FAQ version of article ?
\def\FArticle{%
 \setcounter{figure}{0}%
 \setcounter{table}{0}%
 \begin{multicols}{2}[\Section*{\@longtitle}]%
}
\def\endarticle{\@signature
 \gdef\@author{\mbox{}}}

\def\endArticle{\@signature
 \gdef\@author{\mbox{}}\end{multicols}%
}
\let\endFArticle\endArticle
\def\newarticlemark#1{}

% Use like a 4 column tabular but with no preamble argument.
\def\submissiondates{%
  \begin{center}%
  \begin{tabular}{ll@{}l@{}l}
  \BASK@subtitle{Issue}&
  \BASK@subtitle{Submit material\\ for publication}&
  \BASK@subtitle{Submit last-\\minute notices}&
  \BASK@subtitle{Anticipated\\ posting date}\\[2pt]}
\def\endsubmissiondates{%
  \end{tabular}
  \end{center}}


% rotated italic head on submission dates table
\def\BASK@subtitle#1{%
  \kern-5pt\relax
  \rotatebox{45}{\itshape\begin{tabular}[b]{@{}l@{}}#1\end{tabular}}}

% --- Macros for cross-referencing tables and figures.

\def\figref#1{Figure~\ref{#1}}
\def\tabref#1{Table~\ref{#1}}

% --- Output the attribution at the end of an article.
\def\emptysig{}
\def\@signature{%
 \ifx\@author\emptysig\else
 \begin{flushright}\begin{tabular}{@{}r@{}}\@author\end{tabular}%
 \end{flushright}\fi}

\def\signature#1{\begin{flushright}
 \begin{tabular}{@{}r@{}}#1\end{tabular}%
 \end{flushright}}

%  ****************************************
%  *           INITIALIZATION             *
%  ****************************************
%
\ps@headings
\pagenumbering{arabic}
\sloppy
\flushbottom
\frenchspacing

%\extrarowheight2\p@
\setlength{\multicolsep}{6\p@}
\let\sl\it
% no rule in footcols

\def\@makecol@ftn{%
   \vskip \skip\footins
   \footnoterule
   \footnotesize
   \multicolsep\z@\relax  
   \hsize\textwidth 
   \@parboxrestore
 %  {\showoutput\batchmode\showbox\footins}%
   \raggedcolumns
   \bgroup           \columnseprule 0\p@
   \begin{multicols}{\the\ftn@col@number}%
          \unvbox \footins
   \end{multicols}%
   \egroup
}
%
% available for inter-article dinglines 
%
\def\Dings{\nopagebreak{\footnotesize\dingline{167}}}
%
\@twosidetrue  \@mparswitchtrue
\endinput
%%