Plan 9 from Bell Labs’s /usr/web/sources/contrib/steve/root/sys/lib/texmf/tex/latex/local/tm.cls

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


\newcommand{\tmversiondate}{1996/09/06}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{tm}
              [\tmversiondate Technical Memorandum]
%
% Changes:
%---------------------------------
%
%  COPY FROM ARTICLE.STY (with changes by tla)
%	87-Apr-29	remove typeout for 'article'
%	87-Apr-29	change l@section, TOC style for section 
%       87-Jun-10 	change endthebibliography to allow capture
%			  of the number of references
%	87-Jun-12	change \tableofcontents add newpage to beginning
%	87-Jun-12	change \listoffigures add newpage to beginning
%	87-Jun-12	change \listoftables add newpage to beginning
%	87-Jun-12	change \thebibliography add newpage to beginning
%	88-Feb-03	add \thebibliography* to suppress the newpage
%	88-May-25	redefine bibitem to count reference
%			  remove change to endthebibliography
%	88-???-??	added copytocov & copytohere
%	88-Nov-02	added support for copyto lists longer than 1 pg
%	88-Nov-??	added makefacesignature
%	88-Dec-27	added labeled type list env
%	89-Jan-17	LaTeX extension that are of interest in other
%			  tm related styles moved to tmaddon.sty
%	89-Jan-20	fixed makeautherhead to allow for author's
%			  names that will not fit on one line.
%	89-Jan-20	fixed error for coversheet when no
%			  documentno's specified
%	89-Jan-25	added memo for file style coversheet, mffcoversheet
%	89-Jan-25	fixed bug in makesignature that removed parindent
%	89-Feb-28	fixed bug; undef tm@keywords if keywords not called
%	89-Mar-24	changed \topnumber from 2 to 5
%			changed \bottomnumber from 1 to 5
%			changed \totalnumber from 3 to 10
%			to allow more figures and tables per page
%	89-Apr-10	fixed bug(?) in tm*.sty (is also in art*.sty)
%			 that causes \part to clear even user heads 
%			 with markright in ps@myhead and ps@headandfoot.
%
%	89-May-19	fixed a bug in covereheet printing of document
%			 when two authors from same dept but diff 
%			 document numbers (esp first with none)
%	89-May-19	fixed abstract to allow it to extend across
%			 page break on first page.
%	89-May-19	input localpatch.sty at end to allow local
%			 variants
%	89-Sep-05	removed call to \bibstyle in \makehead since
%			 newer (>0.98) versions of bibtex do not
%			 tolerate redefining.
%	89-Sep-12	fixed bug in number of pages when restofcopyto...
%	89-Oct-11	added additional ITDS locations
%	89-Oct-11	changed makeauthorhead to better handle long
%			 names and eaddresses
%	89-Oct-11	touched up coversheet spaces for names,eaddr
%	89-Oct-12	simplified makesignature
%       89-Nov-21       make facesignature autoload bitmap.sty
%       89-Dec-13       moved \@cite redef to tmaddon
%       89-Dec-19       fixed \title*
%       90-Jan-15       fixed wrong quote mark on coversheet
%       90-Jan-16       broke up coversheet into smaller pieces (ideas
%                        from Peter F. Patel-Schneider)
%       90-Jan-16       fixed coversheet font size regardless of
%                        document font size (ideas from pfps)
%       90-Jan-23       minor changes to appearence of cover sheet
%       90-Feb-11       added bibliography* to allow use of bibtex
%                        with thebibliography* (no new page)
%       90-Feb-15       shortened pan line on 2nd pg of coversheet
%       90-Feb-22       fixed marginparwidth in tm*.sty
%       90-Apr-05       fixed the spacing of facesig's with null faces
%       90-Sep-11       changed to new ``from'' format
%       90-Oct-26       add extrapages macro to add to page count
%                        without effecting page numbering.
%       90-Nov-29       start coversheet with clearpage rather than newpage
%       91-Feb-05       made \date{\today} a default.
%       91-Apr-08       fixed raggedright in makehead esp subject
%       91-May-31       added \marknone to cancel propr marks etc
%       91-Jul-11       added settextpages, settotalpages, setfigures,
%                         settables and setreferences to override automatic
%                         values on coversheet
%       91-Nov-13       change coversheet to support more approval
%                         sigs and add \approver to give names
%
%       95-Jul-7        (HWT) converted to LaTeX2e
%       96-Sep-6        (HWT) updated to LaTeX2e 1996/05/26 v1.3r


% TO FIX:
%  1	coversheet still uses document's fonts sizes for proprietary
%        mark and distribution lists
%  2    \regnotice does not print regbox properly when called in abstract
%  3    fix page numbering so that \mffcoversheet can be printed at
%	beginning. 
%------------------
% article.cls  <1994/12/18>
\newcommand{\@ptsize}{}
% old ptsize maintained for compatiblity but tm@ptsize used so that 
% sizes not starting with 1 are supported.
\newcommand{\tm@ptsize}{}
\newif\if@restonecol
\newif\if@titlepage
\@titlepagefalse
\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}}
\DeclareOption{8pt}{\renewcommand{\@ptsize}{0}\renewcommand{\tm@ptsize}{8}}
\DeclareOption{9pt}{\renewcommand{\@ptsize}{0}\renewcommand{\tm@ptsize}{9}}
\DeclareOption{10pt}{\renewcommand{\@ptsize}{0}\renewcommand{\tm@ptsize}{10}}
\DeclareOption{11pt}{\renewcommand{\@ptsize}{1}\renewcommand{\tm@ptsize}{11}}
\DeclareOption{12pt}{\renewcommand{\@ptsize}{2}\renewcommand{\tm@ptsize}{12}}
\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
\DeclareOption{twoside}{\@twosidetrue  \@mparswitchtrue}
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\DeclareOption{final}{\setlength\overfullrule{0pt}}
\DeclareOption{titlepage}{\@titlepagetrue}
\DeclareOption{notitlepage}{\@titlepagefalse}
\DeclareOption{onecolumn}{\@twocolumnfalse}
\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,10pt,oneside,onecolumn,final}
\ProcessOptions
\input{tmsize\[email protected]}
\setlength\lineskip{1\p@}
\setlength\normallineskip{1\p@}
\renewcommand\baselinestretch{}
\setlength\parskip{0\p@ \@plus \p@}
\@lowpenalty   51
\@medpenalty  151
\@highpenalty 301
\setcounter{topnumber}{5}
\renewcommand{\topfraction}{.7}
\setcounter{bottomnumber}{5}
\renewcommand{\bottomfraction}{.3}
\setcounter{totalnumber}{10}
\renewcommand{\textfraction}{.2}
\renewcommand{\floatpagefraction}{.5}
\setcounter{dbltopnumber}{2}
\renewcommand{\dbltopfraction}{.7}
\renewcommand{\dblfloatpagefraction}{.5}
\if@twoside
  \def\ps@headings{%
      \let\@oddfoot\@empty\let\@evenfoot\@empty
      \def\@evenhead{\thepage\hfil\slshape\leftmark}%
      \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
      \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}}}
\else
  \def\ps@headings{%
    \let\@oddfoot\@empty
    \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
    \let\@mkboth\markboth
    \def\sectionmark##1{%
      \markright {\MakeUppercase{%
        \ifnum \c@secnumdepth >\m@ne
          \thesection\quad
        \fi
        ##1}}}}
\fi
\def\ps@myheadings{%
    \let\@oddfoot\@empty\let\@evenfoot\@empty
    \def\@evenhead{\thepage\hfil\slshape\leftmark}%
    \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
    \let\@mkboth\@gobbletwo
    \let\sectionmark\@gobble
    \let\subsectionmark\@gobble
    }
\if@titlepage
  \newcommand\maketitle{\begin{titlepage}%
  \let\footnotesize\small
  \let\footnoterule\relax
  \let \footnote \thanks
  \null\vfil
  \vskip 60\p@
  \begin{center}%
    {\LARGE \@title \par}%
    \vskip 3em%
    {\large
     \lineskip .75em%
      \begin{tabular}[t]{c}%
        \@author
      \end{tabular}\par}%
      \vskip 1.5em%
    {\large \@date \par}%       % Set date in \large size.
  \end{center}\par
  \@thanks
  \vfil\null
  \end{titlepage}%
  \setcounter{footnote}{0}%
  \global\let\thanks\relax
  \global\let\maketitle\relax
  \global\let\@thanks\@empty
  \global\let\@author\@empty
  \global\let\@date\@empty
  \global\let\@title\@empty
  \global\let\title\relax
  \global\let\author\relax
  \global\let\date\relax
  \global\let\and\relax
\else
\newcommand\maketitle{\par
  \begingroup
    \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
    \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
    \long\def\@makefntext##1{\parindent 1em\noindent
            \hb@[email protected]{%
                \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
    \if@twocolumn
      \ifnum \col@number=\@ne
        \@maketitle
      \else
        \twocolumn[\@maketitle]%
      \fi
    \else
      \newpage
      \global\@topnum\z@   % Prevents figures from going at top of page.
      \@maketitle
    \fi
    \thispagestyle{plain}\@thanks
  \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\title\relax
  \global\let\author\relax
  \global\let\date\relax
  \global\let\and\relax
}
\def\@maketitle{%
  \newpage
  \null
  \vskip 2em%
  \begin{center}%
    {\LARGE \@title \par}%
    \vskip 1.5em%
    {\large
      \lineskip .5em%
      \begin{tabular}[t]{c}%
        \@author
      \end{tabular}\par}%
    \vskip 1em%
    {\large \@date}%
  \end{center}%
  \par
  \vskip 1.5em}
\fi
\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}{\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}
\newcommand\section{\@startsection {section}{1}{\z@}%
                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
                                   {2.3ex \@plus.2ex}%
                                   {\normalfont\Large\bfseries}}
\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
                                     {1.5ex \@plus .2ex}%
                                     {\normalfont\large\bfseries}}
\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}}
\if@twocolumn
  \setlength\leftmargini  {2em}
\else
  \setlength\leftmargini  {2.5em}
\fi
\leftmargin  \leftmargini
\setlength\leftmarginii  {2.2em}
\setlength\leftmarginiii {1.87em}
\setlength\leftmarginiv  {1.7em}
\if@twocolumn
  \setlength\leftmarginv  {.5em}
  \setlength\leftmarginvi {.5em}
\else
  \setlength\leftmarginv  {1em}
  \setlength\leftmarginvi {1em}
\fi
\setlength\leftmargin    {\leftmargini}
\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{$\m@th\bullet$}
\newcommand\labelitemii{\normalfont\bfseries --}
\newcommand\labelitemiii{$\m@th\ast$}
\newcommand\labelitemiv{$\m@th\cdot$}
\newenvironment{description}
               {\list{}{\labelwidth\z@ \itemindent-\leftmargin
                        \let\makelabel\descriptionlabel}}
               {\endlist}
\newcommand*\descriptionlabel[1]{\hspace\labelsep
                                \normalfont\bfseries #1}
% tm does abstracts differently (see below)
%\if@titlepage
%  \newenvironment{abstract}{%
%      \titlepage
%      \null\vfil
%     \@beginparpenalty\@lowpenalty
%      \begin{center}
%        \bfseries \abstractname
%      \end{center}}
%     {\par\vfil\null\endtitlepage}
%\else
%  \newenvironment{abstract}{%
%      \if@twocolumn
%        \section*{\abstractname}%
%      \else
%        \small
%        \begin{center}%
%          {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
%        \end{center}%
%        \quotation
%      \fi}
 %     {\if@twocolumn\else\endquotation\fi}
%\fi
\newenvironment{verse}
               {\let\\\@centercr
                \list{}{\itemsep      \z@
                        \itemindent   -1.5em%
                        \listparindent\itemindent
                        \rightmargin  \leftmargin
                        \advance\leftmargin 1.5em}%
                \item[]}
               {\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
      \thispagestyle{empty}%
      \setcounter{page}\z@
    }%
    {\if@restonecol\twocolumn \else \newpage \fi
    }
\else
\newenvironment{titlepage}
    {%
      \if@twocolumn
        \@restonecoltrue\onecolumn
      \else
        \@restonecolfalse\newpage
      \fi
      \thispagestyle{empty}%
      \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}%
  \renewcommand\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}
\newlength\abovecaptionskip
\newlength\belowcaptionskip
\setlength\abovecaptionskip{10\p@}
\setlength\belowcaptionskip{0\p@}
\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \sbox\@tempboxa{#1: #2}%
  \ifdim \wd\@tempboxa >\hsize
    #1: #2\par
  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip}
\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}
% change \tableofcontents for tm
%\newcommand\tableofcontents{%
%    \section*{\contentsname
%        \@mkboth{\uppercase{\contentsname}}{\MakeUppercase{\contentsname}}}%
%    \@starttoc{toc}%
%    }
\newcommand\tableofcontents{%
    \setcounter{tm@totalpages}{\c@page}\newpage
    \pagenumbering{roman}\parskip=\z@
    \section*{\contentsname
        \@mkboth{\uppercase{\contentsname}}{\MakeUppercase{\contentsname}}}%
    \@starttoc{toc}%
    }
\newcommand*\l@part[2]{%
  \ifnum \c@tocdepth >-2\relax
    \addpenalty\@secpenalty
    \addvspace{2.25em \@plus\p@}%
    \begingroup
      \setlength\@tempdima{3em}%
      \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}
% tm changes section to be like subsection
\newcommand*\l@section[2]{%
  \ifnum \c@tocdepth >\z@
    \addpenalty\@secpenalty
    \addvspace{1.0em \@plus\p@}%
%   expansion of: \@dottedtocline{0}{0em}{1.5em}
    {\leftskip \z@ \rightskip \@tocrmarg \parfillskip -\rightskip
     \parindent \z@ \@afterindenttrue
     \interlinepenalty\@M
     \leavevmode
     \@tempdima 1.5em
     \advance\leftskip \@tempdima \hbox{}\hskip -\leftskip
     {#1}\nobreak\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep
         mu$}\hfill \nobreak
           \hbox to\@pnumwidth{%
             \hfil\reset@font\rmfamily \normalcolor #2}\par}
  \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
% bibliography stuff changes for tm (need bibliography* for no page skip)
\newdimen\bibindent
\bibindent=1.5em
\def\tm@thebibliography#1{%
     \section*{\refname
        \@mkboth{\uppercase{\refname}}{\uppercase{\refname}}%
        \addcontentsline{toc}{section}{REFERENCES}}%
      \list{\@biblabel{\arabic{enumiv}}}%
           {\settowidth\labelwidth{\@biblabel{#1}}%
            \leftmargin\labelwidth
            \advance\leftmargin\labelsep
            \@openbib@code
            \usecounter{enumiv}%
            \let\p@enumiv\@empty
            \setcounter{tm@references}{0}%
            \renewcommand\theenumiv{\@arabic\c@enumiv}}%
      \sloppy\clubpenalty4000\widowpenalty4000%
      \sfcode`\.=\@m}
\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
\let\@openbib@code\@empty
\newif\if@bibonnewpage
\@bibonnewpagetrue
\def\thebibliography{
    \if@bibonnewpage
      \clearpage
    \else
      \relax
    \fi
    \tm@thebibliography}
\def\endthebibliography{
    \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
    \endlist}
\@namedef{thebibliography*}{\tm@thebibliography}
\@namedef{endthebibliography*}{\endthebibliography} 
\def\bibliography{%
  \@ifstar{\@bibonnewpagefalse\tm@bibliography}{\tm@bibliography}}%  
\def\tm@bibliography#1{%
    \if@filesw
      \immediate\write\@auxout{\string\bibdata{#1}}%
    \fi
    \@input{\jobname.bbl}}
%
% bibitem redefined to count all items -- enumiv only counts those
%   with default label
%
\def\bibitem{\global\advance\c@tm@references by1%
  \@ifnextchar[{\@lbibitem}{\@bibitem}}

\newenvironment{theindex}
               {\if@twocolumn
                  \@restonecolfalse
                \else
                  \@restonecoltrue
                \fi
                \columnseprule \z@
                \columnsep 35\p@
                \twocolumn[\section*{\indexname}]%
                \@mkboth{\MakeUppercase\indexname}%
                        {\MakeUppercase\indexname}%
                \thispagestyle{plain}\parindent\z@
                \parskip\z@ \@plus .3\p@\relax
                \let\item\@idxitem}
               {\if@restonecol\onecolumn\else\clearpage\fi}
\newcommand\@idxitem{\par\hangindent 40\p@}
\newcommand\subitem{\@idxitem \hspace*{20\p@}}
\newcommand\subsubitem{\@idxitem \hspace*{30\p@}}
\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
\renewcommand\footnoterule{%
  \kern-3\p@
  \hrule\@width.4\columnwidth
  \kern2.6\p@}
\newcommand\@makefntext[1]{%
    \parindent 1em%
    \noindent
    \hb@[email protected]{\hss\@makefnmark}#1}
\newcommand\contentsname{Contents}
\newcommand\listfigurename{List of Figures}
\newcommand\listtablename{List of Tables}
\newcommand\refname{References}
\newcommand\indexname{Index}
\newcommand\figurename{Figure}
\newcommand\tablename{Table}
\newcommand\partname{Part}
\newcommand\appendixname{Appendix}
\newcommand\abstractname{Abstract}
\newcommand\today{}
\edef\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@}
\pagestyle{plain}
\pagenumbering{arabic}
\if@twoside
\else
  \raggedbottom
\fi
\if@twocolumn
  \twocolumn
  \sloppy
  \flushbottom
\else
  \onecolumn
\fi
%------------------
%  END OF MATERIAL FROM ARTICLE.CLS
\input local.sty %contains local page positioning parameters
\usepackage{tmaddon} % contains LaTeX extentions
%
% Appendices
%
\newcommand{\appendices}{%
    \newpage
    \appendix
    \section*{Appendices\@mkboth{APPENDICES}{APPENDICES}%
         \addcontentsline{toc}{section}{APPENDICES}}%
    }
% set to null so can test if set by user
\newcommand{\tm@null}{}
\renewcommand{\title}{\@ifstar{\tm@notoptitle}{\tm@title}}
\newcommand{\tm@title}[1]{%
    \gdef\tm@covtitle{#1}%
    \gdef\tm@titlepagetitle{#1}%
    \markright{#1}%
    }
\newcommand{\tm@notoptitle}[1]{%
    \gdef\tm@covtitle{#1}%
    \gdef\tm@titlepagetitle{#1}%
    \markright{}%
    }
\newcommand{\titlepagetitle}[1]{\gdef\tm@titlepagetitle{#1}}
\newcommand{\covtitle}[1]{\gdef\tm@covtitle{#1}}
\newcommand{\memotype}[1]{\gdef\tm@memotype{#1}}
%
% approver stuff
%
\newcount\approvernumber
\approvernumber=0
\newcommand{\approver}[1]{%
    \orgapprovaltrue
    \global\advance\approvernumber by1\relax
    \expandafter\gdef
      \csname tm@approver\romannumeral\the\approvernumber\endcsname{#1}%
    }
%
% author stuff
%
\newcount\authornumber
\authornumber=0
\renewcommand{\author}[1]{%
    \global\advance\authornumber by1\relax
    \expandafter\gdef
      \csname tm@author\romannumeral\the\authornumber\endcsname{#1}%
    }
\newcommand{\signatureextra}[1]{%
    \expandafter\gdef\csname 
      tm@signatureextra\romannumeral\the\authornumber\endcsname{#1}%
    }
\newcommand{\typistinitials}[1]{%
    \gdef\tm@typistinitials{#1}%
    }
\newcommand{\initials}[1]{%
    \expandafter\gdef\csname 
      tm@initials\romannumeral\the\authornumber\endcsname{#1}%
    }
\newcommand{\eaddress}[1]{%
    \expandafter\gdef\csname 
      tm@eaddress\romannumeral\the\authornumber\endcsname{#1}%
    }
\newcommand{\company}[1]{%
    \expandafter\gdef\csname 
      tm@company\romannumeral\the\authornumber\endcsname{#1}%
    }
\newcommand{\maddress}[1]{%
    \expandafter\gdef\csname
      tm@maddress\romannumeral\the\authornumber\endcsname{#1}%
    }
\newcommand{\department}[1]{%
    \expandafter\gdef\csname 
      tm@department\romannumeral\the\authornumber\endcsname{#1}%
    }
\newcommand{\location}[3]{%
    \expandafter\gdef\csname
      tm@location\romannumeral\the\authornumber\endcsname{#1}%
    \expandafter\gdef\csname
      tm@office\romannumeral\the\authornumber\endcsname{#2}%
   \expandafter\gdef\csname
      tm@phone\romannumeral\the\authornumber\endcsname{#3}%
    }
\newcommand{\locationextra}[4]{%
    \expandafter\gdef\csname 
      tm@locationextra\romannumeral\the\authornumber\endcsname{#1}%
    }
\newcommand{\documentno}[3]{%
    \expandafter\def\csname
      tm@documentdate\romannumeral\the\authornumber\endcsname{#1}%
    \expandafter\def\csname
      tm@documentseq\romannumeral\the\authornumber\endcsname{#2}%
    \expandafter\def\csname
      tm@documentcat\romannumeral\the\authornumber\endcsname{#3}%
    }
\newcommand{\previousdocument}[1]{\gdef\tm@prevdoc{#1}}%
\gdef\tm@prevdoc{\relax}
%
\newcount\filecasenumber
\filecasenumber=0
\newcommand{\filecase}[1]{%
    \advance\filecasenumber by1\relax%
    \expandafter\def\csname 
      tm@filecase\romannumeral\the\filecasenumber\endcsname{#1}%
    }
\newcount\chargecasenumber
\chargecasenumber=0
\newcommand{\chargecase}[1]{%
    \advance\chargecasenumber by1\relax%
    \expandafter\def\csname 
      tm@chargecase\romannumeral\the\chargecasenumber\endcsname{#1}%
    }
\def\tm@keywords{}
\newcommand{\keywords}[1]{\gdef\tm@keywords{#1}}
\newcount\mercurynumber
\mercurynumber=0
\newcommand{\mercurycode}[1]{%
    \advance\mercurynumber by1\relax%
    \expandafter\def\csname
      tm@mercury\romannumeral\the\mercurynumber\endcsname{#1}%
    }
\newcommand{\cityaddr}[1]{\gdef\tm@cityaddr{#1}}
\newcommand{\companyname}[1]{\gdef\tm@companyname{#1}}
\newcommand{\capcompanyname}[1]{\def\tm@capcompanyname{#1}}
\gdef\tm@companyname{Bell Laboratories}
\gdef\tm@capcompanyname{BELL LABORATORIES}
\newcounter{tm@textpages}
\newcounter{tm@otherpages}
\newcounter{tm@totalpages}\setcounter{tm@totalpages}{0}
\newcounter{tm@references}
\newcounter{tm@extrapages}\setcounter{tm@extrapages}{0}
\newcommand{\extrapages}[1]{\setcounter{tm@extrapages}{#1}}
\long\def\abstract#1{\long\def\tm@abstr{#1}}
\def\makeabstract{%
    \smallskip%
    {\parindent=\z@
    \leftskip0.37in\rightskip0.38in%
    \tm@abstr\par\bigskip}%
  }
\newcommand{\his}[1]{\csname #1\romannumeral\the\authornumber\endcsname}
\newcommand{\approve}[1]{\csname #1\romannumeral\the\approvernumber\endcsname}
\newcommand{\hisorblank}[1]{\if\relax\his{#1}\ \else\his{#1}\fi}
\newcommand{\case}[1]{\csname #1\romannumeral\the\casenumber\endcsname}
% NEW AUTHORHEAD LAYOUT for mm summer 1990
%
%              - The appearance of the author's information in the "from"
%                block on memoranda has changed. Also, the "x" extension
%                prefix has been removed; the complete phone number (with
%                area code) should be supplied as the 5th argument to the
%                .AU macro.  Given the author information:
%
%                .AU NAME [INIT] [LOC] [DEPT] [PHONE] [ROOM] [EMAIL] [ARG]
%                [ARG]
%                the "from" block for each author looks like:
%
%                NAME
%                Dept. DEPT
%                LOC ROOM
%                PHONE
%                EMAIL
%                ARG8
%                ARG9
\newcommand{\makeauthorhead}{%
   {\bfseries\raggedright
    \parbox[t]{9.7em}{\raggedright\hyphenpenalty10000%
	\exhyphenpenalty10000\his{tm@author}\strut}%
     \if\relax\his{tm@company}\relax\else\\ \his{tm@company}\fi%
     \if\relax\his{tm@maddress}\relax\else\\ \his{tm@maddress}\fi%
     \if\relax\his{tm@department}\relax\else\\ Dept. \his{tm@department}\fi
     \if\relax\his{tm@location}\relax\else\\ \his{tm@location}\enskip\fi%
     \if\relax\his{tm@office}\relax\else\his{tm@office}\enskip\fi%
     \if\relax\his{tm@phone}\relax\else\\ \his{tm@phone}\fi
     \if\relax\his{tm@eaddress}\relax\else\\ \his{tm@eaddress}\fi%
     \if\relax\his{tm@locationextra}\relax%
       \else\\ \his{tm@locationextra}\fi%
     \if\relax\his{tm@documentdate}%
        \else\\ \his{tm@department}-\his{tm@documentdate}%
        -\his{tm@documentseq}\his{tm@documentcat}\fi}}
\newif\ifmoreauthors
\newcommand{\forallauthors}[1]{%
  \authornumber=\@ne #1%
  \loop
    \advance\authornumber by\@ne
    \if\relax\his{tm@author}\relax%
      \moreauthorsfalse\else\moreauthorstrue\fi
    \ifmoreauthors #1\repeat
  }
\newif\ifmoreapprovers
\newcommand{\forallapprovers}[1]{%
  \approvernumber=\@ne #1%
  \loop
    \advance\approvernumber by\@ne
    \if\relax\approve{tm@approver}\relax%
      \moreapproversfalse\else\moreapproverstrue\fi
    \ifmoreapprovers #1\repeat
  }
\newcount\casenumber
\newif\ifmorecases
\newcommand{\forallfilecases}[1]{%
  \global\casenumber=0%
  \loop
    \global\advance\casenumber by\@ne
    \if\relax\case{tm@filecase}\relax%
      \morecasesfalse\else\morecasestrue\fi
    \ifmorecases #1\repeat
  }
\newcommand{\forallchargecases}[1]{%
  \global\casenumber=0%
  \loop
    \global\advance\casenumber by\@ne
    \if\relax\case{tm@chargecase}\relax%
      \morecasesfalse\else\morecasestrue\fi
    \ifmorecases #1\repeat
  }
\newcommand{\makehead}{%
   \if N\proprietarylevel\makeproprietarymark{}{}{}{}\fi
   \newpage{\parskip=0pt\ \vskip-48pt%
   \font\lucenta=cmssblogo10
   \font\lucentb=cmsslogo7
   \font\lucentc=lucent45
     \hfill\hbox{\vbox{\baselineskip=8pt
	\halign{\hfill##\cr
		\lucenta Lucent Technologies\cr
		\lucentb Bell Labs Innovations\cr}}%
	\hskip14pt
	\lower5pt\hbox{\lucentc L}}
   \vskip16pt
   \hrule
   \vskip6pt
   \noindent{\sffamily\tm@companyname}

   \vskip4pt%
   \hskip-5pt\parbox[t]{3.5in}{\raggedright%
   \begin{itemize}
     \item[{\footnotesize subject:}]{%
           \bfseries\tm@titlepagetitle%
     \forallchargecases{%
       \expandafter\ifnum\the\casenumber=1{\\ Work Project No. }%
        \else{, }\fi\case{tm@chargecase}} 
     \forallfilecases{%
       \expandafter\ifnum\the\casenumber=1{\\ File Case }\else{, }\fi\case{tm@filecase}}%
     }
     \end{itemize}}
   \hfill%
   \parbox[t]{14em}{\raggedright%
     \begin{itemize}
     \item[{\footnotesize date:}]{\bfseries\@date}
     \forallauthors{\item[{\expandafter\ifnum\the\authornumber=1%
       \footnotesize from:\fi}]\makeauthorhead}
     \end{itemize}}
   \vskip30pt
   \expandafter\if\csname tm@memotype\endcsname\relax{}%
     \else{\itshape\hfill\tm@memotype\hfill} \vskip24pt\fi
   \thispagestyle{onlyfoot}}%
   }
\newcommand{\makesignature}{{\parindent=\z@\par
   \parbox[b]{3in}{\tm@locationi -\tm@departmenti 
   -\forallauthors{\expandafter\ifnum\the\authornumber=1{}\else/\fi%
      \his{tm@initials}}%
      \expandafter\if\csname tm@typistinitials\endcsname\relax{}%
         \else /\tm@typistinitials\fi}\hfill%
   \parbox[b]{3in}{\vskip-5pt\forallauthors{
     \vskip31pt{\bfseries \his{tm@author}
       \if\his{tm@signatureextra}\relax{}\else\\ 
         \his{tm@signatureextra}\fi}}}
   \vskip12pt\setcounter{tm@textpages}{\c@page}}}
\newcommand{\makefacesignature}[1]{{\parindent=\z@\par
   \@ifundefined{initbitmap}{\input bitmap.sty}{}
   \vskip-5pt\forallauthors{
     \vskip11pt
     \xdef\tm@facefile{#1/\his{tm@initials}/face}%
     \parbox[b]{3in}{\vbox{}\hskip2in\hbox{\vrule height48pt
        depth3.5pt width0pt}\input \tm@facefile
        \hfill}%
     \parbox[b]{3in}{{\bfseries \his{tm@author}
       \if\his{tm@signatureextra}\relax{}\else\\ 
         \his{tm@signatureextra}\fi}}}%

   \parbox[b]{3in}{\tm@locationi -\tm@departmenti 
   -\forallauthors{\expandafter\ifnum\the\authornumber=1{}\else/\fi%
      \his{tm@initials}}%
      \expandafter\if\csname tm@typistinitials\endcsname\relax{}%
         \else /\tm@typistinitials\fi}\hfill%
   \vskip12pt\setcounter{tm@textpages}{\c@page}}}
\long\def\copyto#1{%
   {\obeylines\parskip=\z@\parindent=\z@%WHY DOES obeylines NOT WORK
   \hbox{Copy to}\par\nobreak #1\par}
   \newsavebox{\copytobox}\sbox{\copytobox}{\begin{minipage}[t]{3in}
     {\parskip=\z@\parindent=\z@#1}\end{minipage}}
   \setcounter{tm@textpages}{\c@page}}
\long\def\restofcopyto#1{%
   {\obeylines\parskip=\z@\parindent=\z@%WHY DOES obeylines NOT WORK
   \par #1\par\ \medskip}
   \newsavebox{\restofcopytobox}\sbox{\restofcopytobox}%
     {\begin{minipage}[t]{3in}
     {\parskip=\z@\parindent=\z@#1}\end{minipage}}
   \setcounter{tm@textpages}{\c@page}}
\long\def\copytohere#1{%
   {\obeylines\parskip=\z@\parindent=0pt%WHY DOES obeylines NOT WORK
   \hbox{Copy to}\par #1\par\ \medskip}
   \setcounter{tm@textpages}{\c@page}}
\long\def\copytocov#1{%
   \newsavebox{\copytobox}\sbox{\copytobox}{\begin{minipage}[t]{3in}
     {\parskip=\z@\parindent=\z@#1}\end{minipage}}
   \setcounter{tm@textpages}{\c@page}}
\long\def\restofcopytocov#1{%
   \newsavebox{\restofcopytobox}\sbox{\restofcopytobox}%
     {\begin{minipage}[t]{3in}
     {\parskip=\z@\parindent=\z@#1}\end{minipage}}
   \setcounter{tm@textpages}{\c@page}}
\long\def\coverto#1{%
   \newsavebox{\covertobox}\sbox{\covertobox}{\begin{minipage}[t]{3in}
     {\parskip=\z@\parindent=\z@#1}\end{minipage}}}
\long\def\restofcoverto#1{%
   \newsavebox{\restofcovertobox}\sbox{\restofcovertobox}%
   {\begin{minipage}[t]{3in}
     {\parskip=0pt\parindent=0pt#1}\end{minipage}}}
\def\endoftext{\setcounter{tm@textpages}{\c@page}}
%
% Coversheet macros
%
\font\LARGEsf=cmss17
\newif\iforgapproval\orgapprovalfalse
\newcommand{\organizationalapproval}{\orgapprovaltrue}
\newif\ifclassified\classifiedfalse
\newcommand{\classified}[1]{\classifiedtrue\def\classification{#1}}
\newif\ifitdsrelease\itdsreleasetrue
\newcommand{\itdsrestrict}{\itdsreleasefalse}
\newcommand{\tm@stop}{@}
\newif\ifitssame
\newif\ifitsnew
\newcount\tempcount
\newtoks\tm@str
\def\cmp#1#2*#3#4*{%
   \itssametrue\if#1#3\if\tm@stop#1\else\cmp#2*#4\tm@stop*\fi%
   \else\itssamefalse\fi}% compares str1*str2*
\newcommand{\compare}[2]{% string compare
  \edef\str{#1\tm@stop*#2\tm@stop*}% expand args before passing
  \expandafter\cmp\str}
\newcommand{\seeifnewdocnum}{%
  \tempcount=1\itsnewtrue%
  {\loop\ifnum\the\tempcount<\the\authornumber%
    \compare{\his{tm@department}\his{tm@documentdate}}{\csname 
      tm@department\romannumeral\the\tempcount\endcsname\csname 
      tm@documentdate\romannumeral\the\tempcount\endcsname}
    \ifitssame\global\itsnewfalse\fi\advance\tempcount by1\repeat}%
  }
% The following are to allow an if comparison of string
%   I can't find a more direct way.
\let\CHM=a\let\CMM=b\let\MAN=c\let\CMP=d\let\ELC=e
\let\LFS=f\let\STD=g\let\MAS=h\let\PHY=i\let\MKT=j
\newcommand{\bigbox}[2]{\vbox{\hrule height\thinrule\hbox{\vrule width\thinrule%
  \vbox to#1{\hbox to\hsize{#2}}\vrule width\thinrule}\hrule height\fatrule}}
\newcommand{\cbox}[1]{\hbox to\hsize{\strut\hfill#1\hfill}}
\newcommand{\tm@mercurytitle}[1]{%
  \cbox{#1%
  \compare{CHM}{#1}\ifitssame -- Chemistry and Materials\fi 
  \compare{CMM}{#1}\ifitssame -- Communications\fi
  \compare{MAN}{#1}\ifitssame -- Manufacturing\fi
  \compare{CMP}{#1}\ifitssame -- Computing\fi
  \compare{ELC}{#1}\ifitssame -- Electronics\fi
  \compare{LFS}{#1}\ifitssame -- Life Sciences\fi
  \compare{STD}{#1}\ifitssame -- Standards\fi
  \compare{MAS}{#1}\ifitssame -- Math and Statistics\fi
  \compare{PHY}{#1}\ifitssame -- Physics\fi
  \compare{MKT}{#1}\ifitssame -- Marketing\fi
  }}
\newcommand{\coversheet}{%
  \cover@setsizes
  \cover@genmacros
  \cover@head         \cover@sep
  \cover@title        \cover@sep
  \cover@authors      \cover@sep
  \cover@documentno   \cover@sep
  \cover@keywords     \cover@sep
  \cover@mercury      \cover@sep
  \cover@abstract     \cover@sep
  \cover@pagecount    \vskip8pt
  \cover@maillabel    \newpage
  \cover@pagetwohead  \cover@sep
  \cover@distrlists   \vfill
  \ifclassified\cover@sep\cover@classified\fi \cover@sep
  \cover@futuredistribution \cover@sep 
  \cover@signature    
  \if R\proprietarylevel{\cover@sep\cover@approval}
    \else\if G\proprietarylevel{\cover@sep\cover@approval}
      \else\iforgapproval{\cover@sep\cover@approval}\fi\fi\fi  \cover@sep
  \cover@ordering
  % Continued copyto pages if needed
  \@ifundefined{tm@restof}{}{\cover@thirdpage}
  }
\newcommand{\cover@setsizes}{%
  \coversheetsize \hsize=7.5in \vsize=10.25in \textheight 10.25in
  \clearpage
  \hoffset-50pt\voffset-60pt
  \pagestyle{empty}
  \font\attlogofont=att36
  \parindent=\z@
  \newdimen\fatrule\fatrule=2pt
  \newdimen\thinrule\thinrule=1.5pt
}
\newcommand{\coversheetsize}{% do 10pt size stuff, locally
  \def\normalsize{%
     \@setfontsize\normalsize\@xpt\@xiipt
     \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
     \abovedisplayshortskip \z@ \@plus3\p@
     \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
     \belowdisplayskip \abovedisplayskip
     \let\@listi\@listI}%
  \normalsize
  \def\small{%
     \@setfontsize\small\@ixpt{11}%
     \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
     \abovedisplayshortskip \z@ \@plus2\p@
     \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
     \def\@listi{\leftmargin\leftmargini
                 \topsep 4\p@ \@plus2\p@ \@minus2\p@
                 \parsep 2\p@ \@plus\p@ \@minus\p@
                 \itemsep \parsep}%
     \belowdisplayskip \abovedisplayskip
  }%
  \def\footnotesize{%
     \@setfontsize\footnotesize\@viiipt{9.5}%
     \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
  }%
  \def\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}%
  \def\tiny{\@setfontsize\tiny\@vpt\@vipt}%
  \def\large{\@setfontsize\large\@xiipt{14}}%
  \def\Large{\@setfontsize\Large\@xivpt{18}}%
  \def\LARGE{\@setfontsize\LARGE\@xviipt{22}}%
  \def\huge{\@setfontsize\huge\@xxpt{25}}%
  \def\Huge{\@setfontsize\Huge\@xxvpt{30}}%
}
\newcommand{\cover@genmacros}{%
  \def\tm@TM{TECHNICAL MEMORANDUM}%
  \def\tm@tm{Technical Memorandum}%
  \def\tm@IM{INTERNAL MEMORANDUM}%
  \def\tm@im{Internal Memorandum}%
  \def\tm@TC{TECHNICAL CORRESPONDENCE}%
  \def\tm@tc{Technical Correspondence}%
  \def\cover@sep{\medskip\hrule height\thinrule\medskip}%
  \def\squarebox{%
    \vbox{\hrule\hbox{\vrule\vbox to 5pt{\hbox to 5pt{\hfill}\vfil}%
      \vrule}\hrule}\relax}}
\newcommand{\cover@head}{%
  \font\lucentc=lucent45
  \hbox to \hsize{%
    \vtop{\hsize=130pt\parbox{50pt}{\lucentc L}
      \parbox{86pt}{{Bell Laboratories}}}
    \hfill
    \vtop{\hsize=160pt%
      \hbox{\hfill\LARGEsf Document Cover Sheet\hfill}
      \vskip4pt
      \ifx\tm@memotype\tm@tm{\hbox{\hfill\LARGEsf for Technical Memorandum}}\fi
      \ifx\tm@memotype\tm@TM{\hbox{\hfill\LARGEsf for Technical Memorandum}}\fi
      \ifx\tm@memotype\tm@im{\hbox{\hfill\LARGEsf for Internal Memorandum}}\fi
      \ifx\tm@memotype\tm@IM{\hbox{\hfill\LARGEsf for Internal Memorandum}}\fi
      \ifx\tm@memotype\tm@tc{\hbox{\hfill\LARGEsf for Technical 
        Correspondence}}\fi
      \ifx\tm@memotype\tm@TC{\hbox{\hfill\LARGEsf for Technical 
        Correspondence}}\fi
      }}}
\newcommand{\cover@title}{%
  \hbox to \hsize{%
    \vtop{\hsize=.5in{\strut\bfseries Title:\hfill}}%
    \parbox{6.75in}{\strut\tm@covtitle}\hfill}}
\newcommand{\cover@authors}{%
  \hbox to 7.5in{%
    \vtop{\hsize=130pt%
      \cbox{{\bfseries Author\ifnum\authornumber>1 s\fi}}
      \cbox{\vbox{\forallauthors{\hbox{\strut\his{tm@author}\hfill}}}}}
    \hskip4pt%
    \vtop{\hsize=118pt%
      \cbox{{\bfseries Electronic Address}}
      \cbox{\vbox{\forallauthors{\hbox{\strut\his{tm@eaddress}\hfill}}}}}
    \hskip4pt%
    \vtop{\hsize=60pt%
      \cbox{{\bfseries Location}}
      \cbox{\vbox{\forallauthors{\hbox{\strut\his{tm@location}\ 
        \his{tm@office}\hfill}}}}}
    \hskip4pt%
    \vtop{\hsize=57pt%
      \cbox{{\bfseries Phone}}
      \forallauthors{\cbox{\his{tm@phone}}}}
    \hskip4pt%
    \vtop{\hsize=150pt%
      \cbox{{\bfseries Company {\footnotesize (if other than Lucent--BL)}}}
      \cbox{\vbox{\forallauthors{\hbox{\strut\his{tm@company}\hfill}}}}}
    \hfil
    }}  
\newcommand{\cover@documentno}{%
  \hbox{%
    \vtop{\hsize=210pt%
      \cbox{{\bfseries Document No.}}
      \forallauthors{\seeifnewdocnum\ifitsnew%
        \if\relax\his{tm@documentdate}\relax\else%
        \cbox{\his{tm@department}-\his{tm@documentdate}% print if defined
        -\his{tm@documentseq}\his{tm@documentcat}}\fi\fi}}
    \vtop{\hsize=132pt%
      \cbox{{\bfseries Filing Case No.}}
      \forallfilecases{\cbox{\case{tm@filecase}}}}
    \vtop{\hsize=164pt%
      \cbox{{\bfseries Work Project No.}}
      \forallchargecases{\cbox{\case{tm@chargecase}}}}
    \hskip12pt%
    \hfil
    }
  \if\relax\tm@prevdoc\relax\else
  This document supersedes or amends document number: \tm@prevdoc\fi
  }
\newcommand{\cover@keywords}{{\bfseries Keywords:}\hfill\break
  \medskip
  \hskip.25in\tm@keywords}
\newcommand{\cover@mercury}{%
  {\bfseries MERCURY Announcement Bulletin Sections}\hfill\break
  \medskip
  \hbox{\footnotesize%  
    \vtop{\hsize=2.25in%
      \expandafter\if\csname tm@mercuryi\endcsname\relax{}\else
      \tm@mercurytitle{\tm@mercuryi}\fi}
    \hfill
    \vtop{\hsize=2.25in%
      \expandafter\if\csname tm@mercuryii\endcsname\relax{}\else
      \tm@mercurytitle{\tm@mercuryii}\fi}
    \hfill
    \vtop{\hsize=2.25in%
      \expandafter\if\csname tm@mercuryiii\endcsname\relax{}\else
      \tm@mercurytitle{\tm@mercuryiii}\fi}
    }}
\newcommand{\cover@abstract}{{\bfseries Abstract}\hfill\break
  \medskip
  \newdimen\csabstrwidth\csabstrwidth=7in
  \begin{center}
    \begin{minipage}{\csabstrwidth}{\parskip\medskipamount\tm@abstr}\end{minipage}
  \end{center}
  \vfill}
\newcommand\cover@pagecount{%
  \@ifundefined{restofcopytobox}{\@ifundefined{restofcovertobox}%
    {}{\def\tm@restof{y}}}{\def\tm@restof{y}}
  \@ifundefined{mantextpages}{}{\c@tm@textpages\mantextpages}
  {\footnotesize Pages of Text\quad}\thetm@textpages\quad%
  \addtocounter{tm@totalpages}{\c@page}%
  \ifnum\thetm@extrapages>0\addtocounter{tm@totalpages}{\thetm@extrapages}\fi%
  \@ifundefined{tm@restof}% 1 or 2 more pages beyond here
    {\addtocounter{tm@totalpages}{1}}%
    {\addtocounter{tm@totalpages}{2}}%
    \@ifundefined{mantotalpages}{}{\c@tm@totalpages\mantotalpages}
  \setcounter{tm@otherpages}{\thetm@totalpages}%
  \addtocounter{tm@otherpages}{-\thetm@textpages}%
  {\footnotesize Other Pages\quad}\thetm@otherpages\quad%
  {\footnotesize Total\quad}\thetm@totalpages\\
  {\footnotesize No. Figs.\quad}\@ifundefined{manfigures}{\thefigure}{\manfigures}\quad%
  {\footnotesize No. Tables\quad}\@ifundefined{mantables}{\thetable}{\mantables}\quad%
  {\footnotesize No. Refs.\quad}\@ifundefined{manreferences}{\thetm@references}{\manreferences}
  \par}
\newcommand{\settextpages}[1]{\gdef\mantextpages{#1}}
\newcommand{\settotalpages}[1]{\gdef\mantotalpages{#1}}
\newcommand{\setfigures}[1]{\gdef\manfigures{#1}}
\newcommand{\settables}[1]{\gdef\mantables{#1}}
\newcommand{\setreferences}[1]{\gdef\manreferences{#1}}
\newcommand{\cover@maillabel}{%
  \hfill {\bfseries Mailing Label}\hskip90pt\ %
  \par\vskip22pt
  \@ifundefined{tm@propmark}{}{\hskip.5in\usebox{\tm@propmark}}
  \vskip47pt
  {\footnotesize tm.sty (\tmversiondate )}\hfill
  {\sffamily\tm@capcompanyname}}
\newcommand{\cover@pagetwohead}{%
  {\bfseries Initial Distribution Specifications\hfill%
     \authornumber=1\loop%
       \if\relax\his{tm@author}\relax%
        \moreauthorsfalse\else\moreauthorstrue\fi
       \ifmoreauthors\relax\else\authornumber=1%
         \def\tm@documentdatei{No Document Number}\fi%
       \if\relax\his{tm@documentdate}%
         \advance\authornumber by1\repeat% find first document number
    \his{tm@department}-\his{tm@documentdate}%
    \if\relax\his{tm@documentseq}\relax\else-\his{tm@documentseq}%
       \his{tm@documentcat}\fi}%
    {\enskip\itshape (page ii of 
    \@ifundefined{tm@restof}{ii}{iii})}}
\newcommand{\cover@distrlists}{%
  \hfill {\bfseries Complete Copy}\hfill\hfill{\bfseries Cover Sheet Only}\hfill\ 
  \bigskip
  \hbox to \hsize{%
    \hskip.25in
    \@ifundefined{copytobox}{}{\usebox{\copytobox}}%
    \hfill%
    \@ifundefined{covertobox}{}{\usebox{\covertobox}}
    \hskip.25in\ }}
\newcommand{\cover@classified}{%
  {\bfseries Government Security Classification}\hfill\classification}
\newcommand{\cover@futuredistribution}{{\bfseries Future Lucent Distribution}\hfill%
  \ifitdsrelease\hfill Release to any Lucent employee (excluding contract employees)%
    \else\penalty-1\hbox{}\nobreak\hfill\nobreak%
      \hbox{Do not release to any Lucent employee without obtaining
          appropriate approval}%
    \fi\par}
\newcommand{\makeapproval}{%
  \medskip\hrule height\thinrule\medskip
  {\bfseries Proprietary Classification or Other Organizational Approval:} (Department Head)
  \bigskip
  \hbox to \hsize{\@ifundefined{tm@propmark}{}{\usebox{\tm@propmark}}%
     \hfill\vbox{\hrule width 3.5in\vskip20pt\hrule}}}
\newcommand{\cover@signature}{%
  {\forallauthors{\relax}%to set authornumber to numberofauthors+1
   \bfseries Author Signature\ifnum\authornumber>2 s\fi}
  \vskip22pt
  \hbox to \hsize{%
  \vbox{\hsize2.25in\hrule\smallskip\hfill\strut\tm@authori\hfill\ }
  \nobreak\hfill
  \vbox{\hsize2.25in\hrule\smallskip\hfill\strut%
    \expandafter\if\csname tm@authorii\endcsname\relax{}\else\tm@authorii\fi\hfill\ }
  \nobreak\hfill
  \vbox{\hsize2.25in\hrule\smallskip\hfill\strut%
    \expandafter\if\csname tm@authoriii\endcsname\relax{}\else\tm@authoriii\fi\hfill\ }}
  \expandafter\if\csname tm@authoriv\endcsname\relax{}\else%
    \vskip22pt
    \hbox to \hsize{%
    \vbox{\hsize2.25in\hrule\smallskip\hfill\strut\tm@authoriv\hfill\ }
    \nobreak\hfill
    \vbox{\hsize2.25in\hrule\smallskip\hfill\strut%
      \expandafter\if\csname tm@authorv\endcsname\relax{}\else\tm@authorv\fi\hfill\ }
    \nobreak\hfill
    \vbox{\hsize2.25in\hrule\smallskip\hfill\strut%
      \expandafter\if\csname tm@authorvi\endcsname\relax{}\else\tm@authorvi\fi\hfill\ }}\fi
  \expandafter\if\csname tm@authorvii\endcsname\relax{}\else%
    \vskip22pt
    \hbox to \hsize{%
    \vbox{\hsize2.25in\hrule\smallskip\hfill\strut\tm@authorvii\hfill\ }
    \nobreak\hfill
    \vbox{\hsize2.25in\hrule\smallskip\hfill\strut%
      \expandafter\if\csname tm@authorviii\endcsname\relax{}\else\tm@authorviii\fi\hfill\ }
    \nobreak\hfill
    \vbox{\hsize2.25in\hrule\smallskip\hfill\strut%
      \expandafter\if\csname tm@authorix\endcsname\relax{}\else\tm@authorix\fi\hfill\ }}\fi
  }
\newcommand{\cover@approval}{%
  {\forallapprovers{\relax}%to set approver number to numberofapprovers+1
\typeout{\the\approvernumber}
   \bfseries Organizational Approval\ifnum\approvernumber>2 s\fi}
  \vskip22pt
  \hbox to \hsize{%
  \vbox{\hsize2.25in\hrule\smallskip\hfill\strut%
    \expandafter\if\csname tm@approveri\endcsname\relax{}\else\tm@approveri\fi\hfill\ }
  \nobreak\hfill
  \vbox{\hsize2.25in\hrule\smallskip\hfill\strut%
    \expandafter\if\csname tm@approverii\endcsname\relax{}\else\tm@approverii\fi\hfill\ }
  \nobreak\hfill
  \vbox{\hsize2.25in\hrule\smallskip\hfill\strut%
    \expandafter\if\csname tm@approveriii\endcsname\relax{}\else\tm@approveriii\fi\hfill\ }}
  \expandafter\if\csname tm@approveriv\endcsname\relax{}\else%
    \vskip22pt
    \hbox to \hsize{%
    \vbox{\hsize2.25in\hrule\smallskip\hfill\strut\tm@approveriv\hfill\ }
    \nobreak\hfill
    \vbox{\hsize2.25in\hrule\smallskip\hfill\strut%
      \expandafter\if\csname tm@approverv\endcsname\relax{}\else\tm@approverv\fi\hfill\ }
    \nobreak\hfill
    \vbox{\hsize2.25in\hrule\smallskip\hfill\strut%
      \expandafter\if\csname tm@approvervi\endcsname\relax{}\else\tm@approvervi\fi\hfill\ }}\fi
  \expandafter\if\csname tm@approvervii\endcsname\relax{}\else%
    \vskip22pt
    \hbox to \hsize{%
    \vbox{\hsize2.25in\hrule\smallskip\hfill\strut\tm@approvervii\hfill\ }
    \nobreak\hfill
    \vbox{\hsize2.25in\hrule\smallskip\hfill\strut%
      \expandafter\if\csname tm@approverviii\endcsname\relax{}\else\tm@approverviii\fi\hfill\ }
    \nobreak\hfill
    \vbox{\hsize2.25in\hrule\smallskip\hfill\strut%
      \expandafter\if\csname tm@approverix\endcsname\relax{}\else\tm@approverix\fi\hfill\ }}\fi
  }
\def\cover@ordering{{\bfseries For Use by Recipient of Cover Sheet:}

  \medskip

  {\scriptsize
  \hbox to \hsize{%
  \vbox to .7in{\hsize300pt%
  \hbox{\hskip4pt\vbox{\hsize240pt%
  \hbox{Computing network users may order copies via the \textit{library -1} command;\hfill}
  \hbox{\hskip4pt for information, type \textit{man library} after the
  UNIX\regmark\ system prompt.\hfill}}}
  \vfill
  \hbox{\hskip4pt\vbox{\hsize305pt%
  \hbox{Otherwise:\hfill}
  \hbox to\hsize{\hskip4pt Enter your Company ID number.
  \vbox{\hrule width104pt}\hfill}
  \hbox{\hskip4pt Return this sheet to any ITDS location.\par}
  }}}
  \hfill
  \vbox to .7in{\hsize3in%
  Internal Technical Document Service\hfill
  \vfill{
  \begin{tabbing}
  ( )\hskip.72in\=( )\hskip.72in\=( )\hskip.72in\=\kill
  
  ( ) AK 2H-28	\>( ) IH 7M-103	\>( ) DR 2F-19\>( ) NW-ITDS\\
  ( ) ALC 1B-102	\>( ) MV 3L-19	\>( ) INH 1C-114\>( ) PR 5-2120\\
  ( ) CB 3O-2011  \>( ) WH 3E-204	\>( ) IW 2Z-156\\
  ( ) HO 4F-112   \>		\>( ) MT 3B-117
  \end{tabbing}}\vskip -8pt}%
  }
  }}
\newcommand{\cover@thirdpage}{%
  \newpage
  {\hfill\bfseries%
     \authornumber=1\loop%     
       \if\relax\his{tm@author}\relax%
        \moreauthorsfalse\else\moreauthorstrue\fi
       \ifmoreauthors\relax\else\authornumber=1%
         \def\tm@documentdatei{No Document Number}\fi%
       \if\relax\his{tm@documentdate}%
         \advance\authornumber by1\repeat% find first document number
    \his{tm@department}-\his{tm@documentdate}%
    \if\relax\his{tm@documentseq}\relax\else-\his{tm@documentseq}%
       \his{tm@documentcat}\fi}%
    {\enskip\textit{(page iii of iii)}}
  \medskip\hrule height\thinrule\medskip
  \hbox to \hsize{%
    \vtop{\hsize=.5in{\strut\bfseries Title:\hfill}}%
    \parbox{6.75in}{\strut\tm@covtitle}\hfill}
  \medskip\hrule height\thinrule\medskip
  \hfill {\bfseries Complete Copy (continued)}\hfill%
  \hfill{\bfseries Cover Sheet Only (continued)}\hfill\ 
  \bigskip
  \hbox to \hsize{%
    \hskip.25in
    \@ifundefined{restofcopytobox}{}{\usebox{\restofcopytobox}}%
    \hfill%
    \@ifundefined{restofcovertobox}{}{\usebox{\restofcovertobox}}
    \hskip.25in\ }
  \medskip\hrule height\thinrule\medskip
  \vfill
  }% end of continued copyto page
% Memorandum for File type coversheet
\newcommand{\mffcoversheet}{%
\makehead
\makeabstract
\newpage
}%
% end of memorandum for File type coversheet
\pagestyle{headandfoot}
\parskip\medskipamount
\input localpatch.sty

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].