% Manual.cls 5 february 1997, by Johannes Braams, based on: % Manual.sty 11 july 1989, derived from article.sty 8 april 1985 % Implementattion of the manual page style used at the CAWCS for general % software user documentation. % % Copyright (C) 1989 by Marion van Geest, % Center for the Automation of Weapon and Command Systems, % Royal Netherlands Navy % % Manual defines some commands and an environment: % % \tool{name}{1 line description}{version number} % \begin{para}{title} .. \end{para} % used to document all sorts of software tools in Unix-like % manual page style % \package{name}{version number} % used to document Ada package specifications % \urm{name}{version number} % used to document all sorts of software tools in % users reference manuals % (titlepage is mandatory) % % and its own pagestyle so \pagestyle cannot be used % % Contact: % % Marion van Geest, % KM/CAWCS % P.O. Box 10000 % 1780 CA Den Helder % The Netherlands \ProvidesClass{manual}[1997/02/05 v2.0 CAWCS manuals] \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 \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,10pt,oneside,onecolumn,final} \ProcessOptions \input{size1\@ptsize.clo} %Page layout inserts \setlength\vsize{29.5cm} \setlength\hsize{21cm} \setlength\topmargin{-36\p@} \setlength\oddsidemargin{36\p@} \setlength\evensidemargin\z@ \setlength\textheight{24cm} \setlength\textwidth{15.0cm} \setlength\parindent\z@ \setlength\parskip\z@ \setlength\marginparsep\z@ \setlength\marginparwidth\z@ %end of inserts \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{\textbullet} \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} \if@titlepage \newenvironment{abstract}{% \titlepage \null\vfil \@beginparpenalty\@lowpenalty \begin{center}% \bfseries \abstractname \@endparpenalty\@M \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\relax} {\endlist} \newenvironment{quotation} {\list{}{\listparindent \z@ \itemindent \listparindent \rightmargin \leftmargin \parsep \z@ \@plus\p@}% \item\relax} {\endlist} \newenvironment{quote} {\list{}{\rightmargin\leftmargin}% \item\relax} {\endlist} \renewcommand \theequation {\@arabic\c@equation} \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 \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@} \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} \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 \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} \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} \newenvironment{thebibliography}[1] {\section*{\refname \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}% \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 \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@xt@1.8em{\hss\@makefnmark}#1} \setcounter{topnumber}{2} \def\topfraction{.7} \setcounter{bottomnumber}{1} \def\bottomfraction{.3} \setcounter{totalnumber}{3} \def\textfraction{.2} \def\floatpagefraction{.5} \setcounter{dbltopnumber}{2} \def\dbltopfraction{.7} \def\dblfloatpagefraction{.5} \long\def\@makecaption#1#2{ \vskip 10pt \setbox\@tempboxa\hbox{#1: #2} \ifdim \wd\@tempboxa >\hsize \unhbox\@tempboxa \par \else \hbox to\hsize{\hfil\box\@tempboxa\hfil} \fi} \newcounter{figure} \def\thefigure{\@arabic\c@figure} \def\fps@figure{tbp} \def\ftype@figure{1} \def\ext@figure{lof} \def\fnum@figure{Figure \thefigure} \def\figure{\@float{figure}} \let\endfigure\end@float \@namedef{figure*}{\@dblfloat{figure}} \@namedef{endfigure*}{\end@dblfloat} \newcounter{table} \def\thetable{\@arabic\c@table} \def\fps@table{tbp} \def\ftype@table{2} \def\ext@table{lot} \def\fnum@table{Table \thetable} \def\table{\@float{table}} \let\endtable\end@float \@namedef{table*}{\@dblfloat{table}} \@namedef{endtable*}{\end@dblfloat} \newcommand\maketitle{ \if@toolspec \@maketooltitle \else \par \begingroup \renewcommand\thefootnote{\@fnsymbol\c@footnote}% \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% \long\def\@makefntext##1{\parindent 1em\noindent \hb@xt@1.8em{% \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\@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 \fi} \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} \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 } % Special commands for manual pages, ada specs and urms \newif\if@toolspec \@toolspecfalse \def\tool#1#2#3{% \gdef\@headname{#1}% \gdef\@tooldesc{#2}% \gdef\@headvrs{#3}% \@toolspectrue \pagestyle{manual}} \def\package#1#2{% \gdef\@headname{#1}% \gdef\@headvrs{#2}% \pagestyle{manual}} \def\urm#1#2{% \gdef\@headname{#1}% \gdef\@headvrs{#2}% \pagestyle{manual}} \def\ps@manual{% \def\@oddhead{Version: \@headvrs\hfill{\large\bfseries\@headname}} \def\@oddfoot{\hfil\normalfont\thepage\hfil} \def\@evenhead{{\large\bfseries\@headname}\hfill Version: \@headvrs} \def\@evenfoot{\hfil\normalfont\thepage\hfil} \def\sectionmark##1{} \def\subsectionmark##1{}} \newcommand*\@maketooltitle{ \par \begingroup \newpage \global\@topnum\z@ \thispagestyle{manual} \parindent0cm \begingroup \para{Name} {\Large\bfseries \@headname} -- \@tooldesc \endpara \endgroup \par \begingroup \para{Date} \today \endpara \endgroup \endgroup} \newenvironment{para}[1]{% \vspace{0.5cm} \goodbreak {\Large\emph{#1}} \nobreak \quotation }{% \endquotation} \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 \endinput