summaryrefslogtreecommitdiff
path: root/macros/latex209/contrib/milstd
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex209/contrib/milstd
Initial commit
Diffstat (limited to 'macros/latex209/contrib/milstd')
-rw-r--r--macros/latex209/contrib/milstd/milstd.sty818
-rw-r--r--macros/latex209/contrib/milstd/ms10.sty363
-rw-r--r--macros/latex209/contrib/milstd/ms11.sty362
-rw-r--r--macros/latex209/contrib/milstd/ms12.sty363
4 files changed, 1906 insertions, 0 deletions
diff --git a/macros/latex209/contrib/milstd/milstd.sty b/macros/latex209/contrib/milstd/milstd.sty
new file mode 100644
index 0000000000..09fb87de85
--- /dev/null
+++ b/macros/latex209/contrib/milstd/milstd.sty
@@ -0,0 +1,818 @@
+% MIL-STD DOCUMENT STYLE -- for LaTeX version 2.08
+
+\typeout{Document Style 'milstd'. Version EX 02 - revised 27 February 1986}
+\typeout{}
+
+\def\subsubparagraphmark#1{} % Default definitions for milstd style
+\def\subsubsubparagraphmark#1{}
+%
+% Ignore boxes up to 5 points to wide
+%
+\hfuzz=5pt
+
+% The type size option is handled by reading a different file for each
+% size, as follows:
+% 10pt : MS10, 11pt : MS11, 12pt : MS12
+% Implemented by \def'ing \@ptsize to last digit of file name.
+%
+
+\def\@ptsize{0} % Default is MS10.STY
+\@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option reads in MS11.STY
+\@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option reads in MS12.STY
+%
+% Define \documentnumber and \documentdate commands
+\newcommand{\documentnumber}[1]{\def\docnumber{#1}}
+\newcommand{\documentdate}[1]{\def\docdate{#1}}
+
+% Define the \volume counter and assignment command
+\newcounter{volume}
+\newcommand{\volume}[1]{\setcounter{volume}{#1}
+ \renewcommand{\pagenumbering}[1]%
+ {\global\c@page \@ne \gdef\thepage{\thevolume-\csname @##1\endcsname\c@page}}
+ \def\thepage{\thevolume-\arabic{page}}
+ \def\thefigure{\thevolume-\arabic{figure}}
+ \def\thetable{\thevolume-\Roman{table}} }
+
+% Two-side or one-side printing.
+%
+% \@twosidefalse % Default is one-sided printing.
+\def\ds@twoside{\@twosidetrue % Defines twoside option.
+ \@mparswitchtrue} % Marginpars go on outside of page.
+% draft option
+%
+% \overfullrule = 0pt % Default is don't mark overfull hboxes.
+\def\ds@draft{\overfullrule 5pt} % Causes overfull hboxes to be marked.
+
+% Define the control sequences for the different spec types
+%
+\newif\ifmilitary
+\def\military{\militarytrue}
+\def\commercial{\militaryfalse}
+\newif\ifbspec
+\newif\ifcspec
+\def\spectype{}
+\def\A{\def\spectype{A}}
+\def\Btwo{\def\spectype{B} \bspectrue}
+\let\Bfive\Btwo
+\def\Cfive{\def\spectype{C} \cspectrue}
+%
+% This is a temporary message for the bookform option that used to be part of
+% this style.
+\def\bookform{
+ \typeout{}\typeout{ ! ! ! ATTENTION ! ! !}\typeout{}
+ \typeout{Bookform documents are now generated by the `bookform' style.}
+ \typeout{Change your style from `milstd' to `bookform' and delete the}
+ \typeout{\string\bookform\space command. Then run LaTeX again.}
+ \stop}
+
+% The \@options command causes the execution of every command \ds@FOO
+% which is defined and for which the user typed the FOO option in his
+% \documentstyle command. For every option BAR he typed for which
+% \ds@BAR is not defined, the file BAR.sty will be read after the present
+% (main) .STY file is executed.
+
+\@options
+
+\input ms1\@ptsize.sty\relax
+\input extradefs
+
+
+% ****************************************
+% * LISTS *
+% ****************************************
+%
+
+% ENUMERATE
+% Enumeration is done with four counters: enumi, enumii, enumiii
+% and enumiv, where enumN controls the numbering of the Nth level
+% enumeration. The label is generated by the commands \labelenumi
+% ... \labelenumiv. The expansion of \p@enumN\theenumN defines the
+% output of a \ref command.
+
+\def\labelenumi{\alph{enumi}.}
+\def\theenumi{\alph{enumi}}
+
+\def\labelenumii{(\arabic{enumii})}
+\def\theenumii{\arabic{enumii}}
+\def\p@enumii{\theenumi}
+
+\def\labelenumiii{(\alph{enumiii})}
+\def\theenumiii{\alph{enumiii}}
+\def\p@enumiii{\theenumi(\theenumii)}
+
+\def\labelenumiv{\roman{enumiv}.}
+\def\theenumiv{\roman{enumiv}}
+\def\p@enumiv{\p@enumiii\theenumiii}
+
+% ITEMIZE
+% Itemization is controlled by four commands: \labelitemi, \labelitemii,
+% \labelitemiii, and \labelitemiv, which define the labels of the various
+% itemization levels.
+
+\def\labelitemi{$\bullet$}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\ast$}
+\def\labelitemiv{$\cdot$}
+
+
+% VERSE
+% The verse environment is defined by making clever use of the
+% list environment's parameters. The user types \\ to end a line.
+% This is implemented by \let'in \\ equal \@centercr.
+%
+\def\verse{\let\\=\@centercr
+ \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent
+ \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
+\let\endverse\endlist
+
+% QUOTATION
+% Fills lines
+% Indents paragraph
+%
+\def\quotation{\list{}{\listparindent 1.5em
+ \itemindent\listparindent
+ \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]}
+\let\endquotation=\endlist
+
+% QUOTE -- same as quotation except no paragraph indentation,
+%
+\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
+\let\endquote=\endlist
+
+% DESCRIPTION
+%
+% To change the formatting of the label, you must redefine
+% \descriptionlabel.
+
+\def\descriptionlabel#1{\hspace\labelsep \bf #1}
+\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel}}
+
+\let\enddescription\endlist
+
+%\newdimen\descriptionmargin
+%\descriptionmargin=3em
+
+
+% ****************************************
+% * OTHER ENVIRONMENTS *
+% ****************************************
+%
+%
+% THEOREM
+% \@begintheorem ... \@endtheorem are the commands executed at the
+% beginning and end of a (user-defined) theorem-like environment.
+%
+%
+\def\@begintheorem#1#2{\it \trivlist \item[\hskip \labelsep{\bf #1\ #2}]}
+
+\def\@endtheorem{\endtrivlist}
+
+
+% EQUATION and EQNARRAY
+%
+% \newcounter{equation}
+% Default is for left-hand side of equations to be flushleft.
+% To make them flushright, do:
+% \let\@eqnsel = \hfil
+%
+
+\def\theequation{\arabic{equation}}
+
+% \jot = 3pt % Extra space added between lines of an eqnarray environment
+
+% The macro \@eqnnum defines how equation numbers are to appear in equations.
+%
+% \def\@eqnnum{(\theequation)}
+%
+
+% TITLEPAGE
+% In the normal environments, the titlepage environment does nothing but
+% start and end a page, and inhibit page numbers. It also resets the
+% page number to zero.
+%
+
+\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \else \newpage \fi \thispagestyle{empty}\c@page\z@}
+
+\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi}
+
+% ARRAY AND TABULAR
+%
+
+\arraycolsep 5pt % Half the space between columns in an array environment.
+\tabcolsep 6pt % Half the space between columns in a tabular environment.
+\arrayrulewidth .4pt % Width of rules in array and tabular environment.
+\doublerulesep 2pt % Space between adjacent rules in array or tabular env.
+
+% TABBING
+%
+\tabbingsep \labelsep % Space used by the \' command. (See LaTeX manual.)
+
+% MINIPAGE
+% \@minipagerestore is called upon entry to a minipage environment to
+% set up things that are to be handled differently inside a minipage
+% environment. In the current styles, it does nothing.
+
+% \skip\@mpfootins : plays same role for footnotes in a minipage as
+% \skip\footins does for ordinary footnotes
+
+\skip\@mpfootins = \skip\footins
+
+% FRAMEBOX
+%
+\fboxsep = 3pt % Space left between box and text by \fbox and \framebox.
+\fboxrule = .4pt % Width of rules in box made by \fbox and \framebox.
+
+
+% ****************************************
+% * SECTIONS *
+% ****************************************
+%
+% DEFINE COUNTERS:
+%
+% \newcounter{NEWCTR}[OLDCTR] : Defines NEWCTR to be a counter, which is
+% reset to zero when counter OLDCTR is stepped.
+% Counter OLDCTR must already be defined.
+
+\newcounter{part}
+\newcounter {section}
+\newcounter {subsection}[section]
+\newcounter {subsubsection}[subsection]
+\newcounter {paragraph}[subsubsection]
+\newcounter {subparagraph}[paragraph]
+\newcounter {subsubparagraph}[subparagraph]
+\newcounter {subsubsubparagraph}[subsubparagraph]
+\newcounter {appnumber}
+
+% For any counter CTR, \theCTR is a macro that defines the printed version
+% of counter CTR. It is defined in terms of the following macros:
+%
+% \arabic{COUNTER} : The value of COUNTER printed as an arabic numeral.
+% \roman{COUNTER} : Its value printed as a lower-case roman numberal.
+% \Roman{COUNTER} : Its value printed as an upper-case roman numberal.
+% \alph{COUNTER} : Value of COUNTER printed as a lower-case letter:
+% 1 = a, 2 = b, etc.
+% \Alph{COUNTER} : Value of COUNTER printed as an upper-case letter:
+% 1 = A, 2 = B, etc.
+%
+
+\def\thepart{\Roman{part}} % Roman numeral part numbers.
+\def\thesection {\arabic{section}.}
+\def\thesubsection {\thesection\arabic{subsection}}
+\def\thesubsubsection {\thesubsection .\arabic{subsubsection}}
+\def\theparagraph {\thesubsubsection.\arabic{paragraph}}
+\def\thesubparagraph {\theparagraph.\arabic{subparagraph}}
+\def\thesubsubparagraph {\thesubparagraph.\arabic{subsubparagraph}}
+\def\thesubsubsubparagraph {\thesubsubparagraph.\arabic{subsubsubparagraph}}
+
+
+% ****************************************
+% * TABLE OF CONTENTS, ETC. *
+% ****************************************
+%
+% A \subsection command writes a
+% \contentsline{subsection}{TITLE}{PAGE}
+% command on the .toc file, where TITLE contains the contents of the
+% entry and PAGE is the page number. If subsections are being numbered,
+% then TITLE will be of the form
+% \numberline{NUM}{HEADING}
+% where NUM is the number produced by \thesubsection. Other sectioning
+% commands work similarly.
+%
+% A \caption command in a 'figure' environment writes
+% \contentsline{figure}{\numberline{NUM}{CAPTION}}{PAGE}
+% on the .lof file, where NUM is the number produced by \thefigure and
+% CAPTION is the figure caption. It works similarly for a 'table' environment.
+%
+% The command \contentsline{NAME} expands to \l@NAME. So, to specify
+% the table of contents, we must define \l@section,
+% \l@subsection, ... ; to specify the list of figures, we must define
+% \l@figure; and so on. Most of these can be defined with the
+% \@dottedtocline command, which works as follows.
+%
+% \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE}
+% LEVEL : An entry is produced only if LEVEL < or = value of
+% 'tocdepth' counter. Note that \section is level 1,
+% \subsection is level 2, etc.
+% INDENT : The indentation from the outer left margin of the start of
+% the contents line.
+% NUMWIDTH : The width of a box in which the section number is to go,
+% if TITLE includes a \numberline command.
+%
+% This command uses the following three parameters, which are set
+% with a \def (so em's can be used to make them depend upon the font).
+% \@pnumwidth : The width of a box in which the page number is put.
+% \@tocrmarg : The right margin for multiple line entries. One
+% wants \@tocrmarg > or = \@pnumwidth
+% \@dotsep : Separation between dots, in mu units. Should be \def'd to
+% a number like 2 or 1.7
+
+\def\@pnumwidth{3em}
+\def\@tocrmarg {2.55em}
+\def\@dotsep{4.5}
+\setcounter{tocdepth}{7}
+
+
+% TABLEOFCONTENTS
+%
+\def\tableofcontents{\section*{\protect\centering{TABLE OF CONTENTS}
+ \markboth{TABLE OF CONTENTS}{TABLE OF CONTENTS}}
+ \addvspace{1.0em plus 1pt} % space above toc entry
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \bf % Boldface.
+ \leavevmode % TeX command to enter horizontal mode.
+ \hbox to\textwidth{Paragraph \hfill Page}\par
+ \addvspace{1.0em plus 1pt} % space below Parag... entry
+ \endgroup
+ {\parskip 0pt plus 1pt
+ \@starttoc{toc}}}
+
+\def\l@part#1#2{\addpenalty{-\@highpenalty}
+ \addvspace{2.25em plus 1pt} % space above part line
+ \begingroup
+ \@tempdima 3em % width of box holding part number, used by
+ \parindent \z@ \rightskip \@pnumwidth %% \numberline
+ \parfillskip -\@pnumwidth
+ {\large \bf % set line in \large boldface
+ \leavevmode % TeX command to enter horizontal mode.
+ #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
+ \nobreak % Never break after part entry
+ \endgroup}
+
+\def\l@section{\@dottedtocline{1}{0em}{7em}}
+\def\l@subsection{\@dottedtocline{2}{0em}{7em}}
+\def\l@subsubsection{\@dottedtocline{3}{0em}{7em}}
+\def\l@paragraph{\@dottedtocline{4}{0em}{7em}}
+\def\l@subparagraph{\@dottedtocline{5}{0em}{7em}}
+\def\l@subsubparagraph{\@dottedtocline{6}{0em}{7em}}
+\def\l@subsubsubparagraph{\@dottedtocline{7}{0em}{7em}}
+
+% LIST OF FIGURES
+%
+\def\listoffigures{\section*{\protect\centering{LIST OF FIGURES}
+ \markboth{LIST OF FIGURES}{LIST OF FIGURES}}
+ \addvspace{1.0em plus 1pt} % space above lof entry
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \bf % Boldface.
+ \leavevmode % TeX command to enter horizontal mode.
+ \hbox to\textwidth{Figure \hfill Page}\par
+ \addvspace{1.0em plus 1pt} % space below Figure... entry
+ \endgroup
+ {\parskip 0pt plus 1pt
+ \@starttoc{lof}}}
+
+\def\l@figure{\@dottedtocline{1}{0em}{5.5em}}
+
+% LIST OF TABLES
+%
+\def\listoftables{\section*{\protect\centering{LIST OF TABLES}
+ \markboth{LIST OF TABLES}{LIST OF TABLES}}
+ \addvspace{1.0em plus 1pt} % space above lot entry
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \bf % Boldface.
+ \leavevmode % TeX command to enter horizontal mode.
+ \hbox to\textwidth{Table \hfill Page}\par
+ \addvspace{1.0em plus 1pt} % space below Table... entry
+ \endgroup
+ {\parskip 0pt plus 1pt
+ \@starttoc{lot}}}
+
+\let\l@table\l@figure
+
+
+
+% ****************************************
+% * BIBLIOGRAPHY *
+% ****************************************
+%
+% TEMPORARY DEFINITIONS:
+
+\def\thebibliography#1{\section*{References\markboth
+ {REFERENCES}{REFERENCES}}\list
+ {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
+ \advance\leftmargin\labelsep\usecounter{enumi}}}
+
+\let\endthebibliography=\endlist
+
+% \def\@biblabel#1{[#1]\hfill} % Produces the label for a \bibitem[...]
+ % command.
+% \def\@cite#1{[#1]} % Produces the output of the \cite command.
+
+
+
+% ****************************************
+% * THE INDEX *
+% ****************************************
+%
+% THE THEINDEX ENVIRONMENT
+% Produces double column format, with each paragraph a separate entry.
+% The user commands \item, \subitem and \subsubitem are used to
+% produce the entries, and \indexspace adds an extra vertical space
+% that's the right size to put above the first entry with a new letter
+% of the alphabet.
+
+\newif\if@restonecol
+
+\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
+\columnseprule \z@
+\columnsep 35pt\twocolumn[\section*{Index}]
+ \markboth{INDEX}{INDEX}\thispagestyle{plain}\parindent\z@
+ \parskip\z@ plus .3pt\relax\let\item\@idxitem}
+
+\def\@idxitem{\par\hangindent 40pt}
+
+\def\subitem{\par\hangindent 40pt \hspace*{20pt}}
+
+\def\subsubitem{\par\hangindent 40pt \hspace*{30pt}}
+
+\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
+
+\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax}
+
+
+% ****************************************
+% * FOOTNOTES *
+% ****************************************
+%
+% \footnoterule is a macro to draw the rule separating the footnotes from
+% the text. It should take zero vertical space, so it needs a negative
+% skip to compensate for any positive space taken by the rule. (See
+% PLAIN.TEX.)
+
+\def\footnoterule{\kern-1\p@
+ \hrule width .4\columnwidth
+ \kern .6\p@} % The \hrule has default height of .4pt .
+
+% \newcounter{footnote}
+
+% The numbering style (arabic, alph, etc.) for ordinary footnotes
+% is defined by the macro \thefootnote.
+%
+% \@makefntext{NOTE} :
+% Must produce the actual footnote, using \@thefnmark as the mark
+% of the footnote and NOTE as the text. It is called when effectively
+% inside a \parbox of width \columnwidth (i.e., with \hsize =
+% \columnwidth). The following macro indents
+% all lines of the footnote by 10pt, and indents the first line of
+% a new paragraph by 1em. To change these dimensions, just substitute
+% the desired value for '10pt' [in both places] or '1em'.
+% The mark is flushright against the footnote.
+%
+% It is much easier to write a macro in which the footnote text is
+% set like an ordinary text paragraph, with no indentation except
+% on the first line of a paragraph, and the first line of the
+% footnote. In that case, all the macro must do is set \parindent
+% to the appropriate value for succeeding paragraphs and put the
+% proper indentation before mark.
+
+\long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize
+ \advance\@tempdima-10pt\parshape \@ne 10pt \@tempdima}\par
+ \parindent 1em\noindent \hbox to \z@{\hss$^{\@thefnmark}$}#1}
+
+% \@makefnmark : A macro to generate the footnote marker that goes
+% in the text. Default definition used.
+
+
+
+% ****************************************
+% * FIGURES AND TABLES *
+% ****************************************
+%
+% Float placement parameters. See LaTeX manual for their definition.
+%
+\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}
+
+% \@makecaption{NUMBER}{TEXT} : Macro to make a figure or table caption.
+% NUMBER : Figure or table number--e.g., 'Figure 3.2'
+% TEXT : The caption text.
+% Macro should be called inside a \parbox of right width, with \normalsize.
+
+\long\def\@makecaption#1#2{
+ \vskip 10pt
+ \setbox\@tempboxa\hbox{#1. #2}
+ \ifdim \wd\@tempboxa >\hsize % IF longer than one line:
+ \unhbox\@tempboxa\par % THEN set as ordinary paragraph.
+ \else % ELSE center.
+ \hbox to\hsize{\hfil\box\@tempboxa\hfil}
+ \fi}
+
+% To define a float of type TYPE (e.g., TYPE = figure), the document style
+% must define the following.
+%
+% \fps@TYPE : The default placement specifier for floats of type TYPE.
+%
+% \ftype@TYPE : The type number for floats of type TYPE. Each TYPE has
+% associated a unique positive TYPE NUMBER, which is a power
+% of two. E.g., figures might have type number 1, tables type
+% number 2, programs type number 4, etc.
+%
+% \ext@TYPE : The file extension indicating the file on which the
+% contents list for float type TYPE is stored. For example,
+% \ext@figure = 'lof'.
+%
+% \fnum@TYPE : A macro to generate the figure number for a caption.
+% For example, \fnum@TYPE == Figure \thefigure.
+%
+% The actual float-making environment commands--e.g., the commands
+% \figure and \endfigure--are defined in terms of the macros \@float
+% and \end@float, which are described below.
+%
+% \@float{TYPE}[PLACEMENT] : Macro to begin a float environment for a
+% single-column float of type TYPE with PLACEMENT as the placement
+% specifier. The default value of PLACEMENT is defined by \fps@TYPE.
+% The environment is ended by \end@float.
+% E.g., \figure == \@float{figure}, \endfigure == \end@float.
+
+
+% FIGURE
+
+\newcounter{figure}
+\def\thefigure{\@arabic\c@figure}
+
+\def\fps@figure{hbp}
+\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}
+
+% TABLE
+%
+\newcounter{table}
+\def\thetable{\@Roman\c@table}
+
+\def\fps@table{hbp}
+\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}
+
+
+% ****************************************
+% * TITLE AND ABSTRACT *
+% ****************************************
+%
+
+% \maketitle ==
+% BEGIN
+% \par
+% \begingroup
+% redefine \@makefnmark so footnote marks take zero space (this make
+% centering look better)
+% \thefootnote == \fnsymbol{footnote} % to number by *, dagger, etc.
+% if @twocolumn = true
+% then \twocolumn[\@maketitle]
+% else \@maketitle
+% fi
+% \thispagestyle{plain}
+% \@thanks % \thanks defines \@thanks to have \footnotetext commands for
+% % producing footnotes.
+% \endgroup
+% END
+\def\maketitle{\par
+ \begingroup
+ \if@twocolumn
+ \twocolumn[\@maketitle]
+ \else \newpage
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@maketitle \fi
+ \endgroup
+ \let\maketitle\relax
+ \let\@maketitle\relax
+ \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax}
+
+\def\@maketitle{\newpage \thispagestyle{titlepage}
+ \parskip 0pt plus 1pt
+ \null
+
+ \vspace{.4in}
+ \begin{center}
+ {\large \bf \@title \par} % Title set in \large size.
+ \vspace{1.5in}
+ \makebox[\textwidth]{\makebox[2in][l]{Authenticated by:} \hfill
+ \makebox[2in][l]{Approved by:}} \par
+ \vspace{.5in}
+ \makebox[\textwidth]{\makebox[2in][l]{\rule[0pt]{2in}{1pt}} \hfill
+ \makebox[2in][l]{\rule[0pt]{2in}{1pt}}} \par
+ \makebox[\textwidth]{\makebox[2in][l]{Procuring Activity} \hfill
+ \makebox[2in][l]{Program Manager}} \par
+ \vspace{.75in}
+ \makebox[\textwidth]{\makebox[2in][l]{\rule[0pt]{2in}{1pt}} \hfill
+ \makebox[2in][l]{\rule[0pt]{2in}{1pt}}} \par
+ \makebox[\textwidth]{\makebox[2in][l]{Date} \hfill
+ \makebox[2in][l]{Technical Director}} \par
+ \vspace{.75in}
+ \makebox[\textwidth]{\makebox[2in]{}\hfill
+ \makebox[2in]{\rule[0pt]{2in}{1pt}}} \par
+ \makebox[\textwidth]{\makebox[2in]{} \hfill \makebox[2in][l]{Date}}
+ \end{center}
+ }
+
+\def\abstract{\if@twocolumn
+\section*{Abstract}
+\else \small
+\begin{center}
+{\bf Abstract\vspace{-.5em}\vspace{0pt}}
+\end{center}
+\quotation
+\fi}
+
+\def\endabstract{\if@twocolumn\else\endquotation\fi}
+
+
+% ****************************************
+% * PAGE STYLES *
+% ****************************************
+%
+% The page style 'foo' is defined by defining the command \ps@foo. This
+% command should make only local definitions. There should be no stray
+% spaces in the definition, since they could lead to mysterious extra
+% spaces in the output.
+%
+% The \ps@... command defines the macros \@oddhead, \@oddfoot,
+% \@evenhead, and \@evenfoot to define the running heads and
+% feet---e.g., \@oddhead is the macro to produce the contents of the
+% heading box for odd-numbered pages. It is called inside an \hbox of
+% width \textwidth.
+%
+% To make headings determined by the sectioning commands, the page style
+% defines the commands \sectionmark, ... , where
+% \sectionmark{TEXT} is called by \section to set a mark, and so on.
+% The \...mark commands and the \...head macros are defined with the
+% help of the following macros. (All the \...mark commands should be
+% initialized to no-ops.)
+%
+% MARKING CONVENTIONS:
+% LaTeX extends TeX's \mark facility by producing two kinds of marks
+% a 'left' and a 'right' mark, using the following commands:
+% \markboth{LEFT}{RIGHT} : Adds both marks.
+% \markright{RIGHT} : Adds a 'right' mark.
+% \leftmark : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot
+% macro, gets the current 'left' mark. Works like TeX's
+% \botmark command.
+% \rightmark : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot
+% macro, gets the current 'right' mark. Works like TeX's
+% \firstmark command.
+% The marking commands work reasonably well for right marks 'numbered
+% within' left marks--e.g., the left mark is changed by a \section command and
+% the right mark is changed by a \subsection command. However, it does
+% produce somewhat anomalous results if two \bothmark's occur on the same page.
+%
+
+\mark{{}{}} % Initializes TeX's marks
+
+% \def\ps@empty{\def\@oddhead{}
+% \def\@oddfoot{}
+% \def\@evenhead{}\def\@evenfoot{}}
+%
+% \def\ps@plain{\def\@oddhead{}
+% \def\@oddfoot{\rm\hfil\thepage\hfil}
+% \def\@evenhead{}
+% \let\@evenfoot\@oddfoot}
+
+% Definition of 'headings' page style
+% Note the use of ##1 for parameter of \def\sectionmark inside the
+% \def\ps@headings.
+%
+
+\if@twoside % If two-sided printing.
+\def\ps@headings{\def\@oddfoot{}\def\@evenfoot{}% No feet.
+\def\@evenhead{\rm \thepage\hfil \sl \leftmark}% Left heading.
+\def\@oddhead{\hbox{}\sl \rightmark \hfil \rm\thepage}% Right heading.
+\def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\z@
+ \thesection\hskip 1em\relax \fi ##1}}{}}%
+\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne
+ \thesubsection\hskip 1em\relax \fi ##1}}}
+\else % If one-sided printing.
+\def\ps@headings{\def\@oddfoot{}\def\@evenfoot{}% No feet.
+\def\@oddhead{\hbox {}\sl \rightmark \hfil \rm\thepage}% Heading.
+\def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@
+ \thesection\hskip 1em\relax \fi ##1}}}}
+\fi
+
+% Definition of 'myheadings' page style. The user's \head command
+% changes the definition of \@lhead and/or \@rhead.
+%
+\def\ps@myheadings{\def\@oddhead{\hbox{}\sl\@rhead \hfil \rm\thepage}%
+\def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\@lhead\hbox {}}%
+\def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}}
+
+% Definition of 'milstd' page style for specifications.
+% Note the use of ##1 for parameter of \def\sectionmark inside the
+% \def\ps@milstd.
+%
+
+\if@twoside % If two-sided printing.
+\def\ps@milstd{\def\@oddfoot{\rm \hbox{}\hfil \thepage}
+\def\@evenfoot{\rm \thepage\hfil}%
+\def\@evenhead{\small\rm \shortstack[l]{
+ \ifmilitary C\spectype\docnumber \else L\spectype\docnumber \fi \\
+ \ifx\@empty\docdate \today \else \docdate \fi} \hfil}%
+\def\@oddhead{\hbox{} \hfil\small\rm \shortstack[l]{
+ \ifmilitary C\spectype\docnumber \else L\spectype\docnumber \fi \\
+ \ifx\@empty\docdate \today \else \docdate \fi}}%
+\def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\z@
+ \thesection\hskip 1em\relax \fi ##1}}{}}%
+\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne
+ \thesubsection\hskip 1em\relax \fi ##1}}}
+\else % If one-sided printing.
+\def\ps@milstd{\def\@oddfoot{\rm\hbox{}\hfil \thepage}\def\@evenfoot{}%
+\def\@oddhead{\hbox{} \hfil\rm \shortstack[l]{
+ \ifmilitary C\spectype\docnumber \else L\spectype\docnumber \fi \\
+ \ifx\@empty\docdate \today \else \docdate \fi}}%
+\def\@evenhead{}%
+\def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@
+ \thesection\hskip 1em\relax \fi ##1}}}}
+\fi
+
+% Definition of 'titlepage' page style.
+%
+\def\ps@titlepage{\headheight=6em
+ \def\@oddhead{\hbox{}\hfil \bf
+ \shortstack[l]{
+ Specification Number \ifmilitary C\spectype\docnumber
+ \else L\spectype\docnumber \fi\\
+ FSCM No. 35351\\
+ \ifbspec Part I of Two Parts \\
+ (Part II \ifmilitary CC\docnumber \else LC\docnumber \fi ) \\
+ \else \ifcspec Part II of Two Parts \\
+ (Part I \ifmilitary CB\docnumber \else LB\docnumber \fi ) \\
+ \fi \fi
+ \ifx\@empty\docdate \today \else \docdate \fi}}
+ \def\@oddfoot{}\def\@evenhead{}%
+ \def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}}
+
+% FOR VERSION 2.08
+%\def\ps@myheadings{\ps@headings\def\sectionmark##1{}\def\subsectionmark##1{}}
+
+
+% ****************************************
+% * MISCELLANEOUS *
+% ****************************************
+%
+% DATE
+%
+\def\today{\number\day\space \ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\year}
+
+
+% ****************************************
+% * INITIALIZATION *
+% ****************************************
+%
+% Default initializations
+
+\ps@milstd
+\pagenumbering{arabic} % Arabic page numbers
+\onecolumn % Single-column.
+\def\docdate{}
+\def\docnumber{}
+\military
+\bspecfalse
+\cspecfalse
+\if@twoside\else\raggedbottom\fi % Ragged bottom unless twoside option.
+%
+% Define the section style commands
+%
+\def\sectionstyle{\large\bf}
+\def\subsectionstyle{\large\bf}
+\def\subsubsectionstyle{\normalsize\bf}
+\def\paragraphstyle{\normalsize\bf}
+\def\subparagraphstyle{\normalsize\bf}
+\def\subsubparagraphstyle{\normalsize\bf}
+\def\subsubsubparagraphstyle{\normalsize\bf}
+
+% DEC/CMS REPLACEMENT HISTORY, Element MILSTD.STY
+% *9 27-FEB-1986 14:29:48 MCPHERSON "Correct \volume command, delete documentlist,restore headings page style and create milstd page style"
+% *8 13-FEB-1986 13:21:41 MCPHERSON "\volume command set the pagestyle, redefine how figures/tables are numbered"
+% *7 7-FEB-1986 10:10:18 MCPHERSON "deleted bookform, added volumes, renumbered appendices"
+% *6 14-JAN-1986 09:07:37 MCPHERSON "Update revision date message"
+% *5 13-JAN-1986 08:53:27 MCPHERSON "Change descriptionlabel format, reset \parskip inside toc and title"
+% *4 15-NOV-1985 12:57:58 MCPHERSON "Add ps@plain initialization"
+% *3 15-NOV-1985 11:13:39 MCPHERSON "Added bookform documents"
+% *2 14-NOV-1985 13:18:31 MCPHERSON "Add A specs and commercial capability"
+% *1 6-NOV-1985 15:11:17 MCPHERSON "MIL-STD-490 document style, LaTeX 2.08"
+% DEC/CMS REPLACEMENT HISTORY, Element MILSTD.STY
diff --git a/macros/latex209/contrib/milstd/ms10.sty b/macros/latex209/contrib/milstd/ms10.sty
new file mode 100644
index 0000000000..308edc4127
--- /dev/null
+++ b/macros/latex209/contrib/milstd/ms10.sty
@@ -0,0 +1,363 @@
+% MIL-STD DOCUMENT STYLE -- for LaTeX version 2.08
+
+% ****************************************
+% * FONTS *
+% ****************************************
+%
+
+\lineskip 1pt % \lineskip is 1pt for all font sizes.
+\normallineskip 1pt
+\def\baselinestretch{1}
+
+% Each size-changing command \SIZE executes the command
+% \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE
+% where:
+% BASELINESKIP = Normal value of \baselineskip for that size. (Actual
+% value will be \baselinestretch * BASELINESKIP.)
+%
+% \FONTSIZE = Name of font-size command. The currently available
+% (preloaded) font sizes are: \vpt (5pt), \vipt (6pt),
+% \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt,
+% \xivpt, \xviipt, \xxpt, \xxvpt.
+% \@FONTSIZE = The same as the font-size command except with an
+% '@' in front---e.g., if \FONTSIZE = \xivpt then
+% \@FONTSIZE = \@xivpt.
+%
+% For reasons of efficiency that needn't concern the designer,
+% the document style defines \@normalsize instead of \normalsize . This is
+% done only for \normalsize, not for any other size-changing commands.
+
+\def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt
+\abovedisplayskip 10pt plus2pt minus5pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6pt plus3pt minus3pt}
+
+\def\small{\@setsize\small{11pt}\ixpt\@ixpt
+\abovedisplayskip 8.5pt plus 3pt minus 4pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus2pt%
+\belowdisplayshortskip 4pt plus2pt minus 2pt
+\def\@listi{\topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt
+\itemsep \parsep}}
+
+\def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt
+\abovedisplayskip 6pt plus 2pt minus 4pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus 1pt%
+\belowdisplayshortskip 3pt plus 1pt minus 2pt
+\def\@listi{\topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt
+\itemsep \parsep}}
+
+\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
+\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
+\def\large{\@setsize\large{14pt}\xiipt\@xiipt}
+\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
+\def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
+\def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
+\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
+
+\normalsize % Choose the normalsize font.
+
+
+% ****************************************
+% * PAGE LAYOUT *
+% ****************************************
+%
+% All margin dimensions measured from a point one inch from top and side
+% of page. Dimensions shrink by about 2 percent
+
+% SIDE MARGINS:
+\if@twoside % Values for two-sided printing:
+ \oddsidemargin 44pt % Left margin on odd-numbered pages.
+ \evensidemargin 82pt % Left margin on even-numbered pages.
+ \marginparwidth 107pt % Width of marginal notes.
+\else % Values for one-sided printing:
+ \oddsidemargin 0pt % Note that \oddsidemargin = \evensidemargin
+ \evensidemargin 0pt
+ \marginparwidth 90pt
+\fi
+\marginparsep 11pt % Horizontal space between outer margin and
+ % marginal note
+
+
+% VERTICAL SPACING:
+ % Top of page:
+\topmargin -35pt % Nominal distance from top of page to top of
+ % box containing running head.
+\headheight 24pt % Height of box containing running head.
+\headsep 25pt % Space between running head and text.
+% \topskip = 10pt % '\baselineskip' for first line of page.
+ % Bottom of page:
+\footheight 12pt % Height of box containing running foot.
+\footskip 30pt % Distance from baseline of box containing foot
+ % to baseline of last line of text.
+
+
+% DIMENSION OF TEXT:
+
+\textheight 8.33in % Height of text (including footnotes and figures,
+ % excluding running head and foot).
+\textwidth 6.25in % Width of text line.
+ % For two-column mode:
+\columnsep 10pt % Space between columns
+\columnseprule 0pt % Width of rule between columns.
+
+% A \raggedbottom command causes 'ragged bottom' pages: pages set to
+% natural height instead of being stretched to exactly \textheight.
+
+% FOOTNOTES:
+
+\footnotesep 12pt % Height of strut placed at the beginning of every
+ % footnote.
+\skip\footins 6pt plus 2pt minus 2pt % Space between last line of text and
+ % top of first footnote.
+
+% FLOATS: (a float is something like a figure or table)
+%
+% FOR FLOATS ON A TEXT PAGE:
+%
+% ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
+\floatsep 12pt plus 2pt minus 2pt % Space between adjacent floats moved
+ % to top or bottom of text page.
+\textfloatsep 20pt plus 2pt minus 4pt % Space between main text and floats
+ % at top or bottom of page.
+\intextsep 12pt plus 2pt minus 2pt % Space between in-text figures and
+ % text.
+\@maxsep 20pt % The maximum of \floatsep,
+ % \textfloatsep and \intextsep (minus
+ % the stretch and shrink).
+% TWO-COLUMN FLOATS IN TWO-COLUMN MODE:
+\dblfloatsep 12pt plus 2pt minus 2pt % Same as \floatsep for double-column
+ % figures in two-column mode.
+\dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for double-column
+ % floats.
+\@dblmaxsep 20pt % The maximum of \dblfloatsep and
+ % \dbltexfloatsep.
+
+% FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN:
+% ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
+\@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must be
+ % 0pt plus ...)
+\@fpsep 8pt plus 2fil % Space between floats on float page/column.
+\@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must be
+ % 0pt plus ... )
+
+% DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE.
+\@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...)
+\@dblfpsep 8pt plus 2fil % Space between floats on float page.
+\@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be
+ % 0pt plus ... )
+% MARGINAL NOTES:
+%
+\marginparpush 5pt % Minimum vertical separation between two marginal
+ % notes.
+
+
+% ****************************************
+% * PARAGRAPHING *
+% ****************************************
+%
+\parskip 10pt plus 1pt % Extra vertical space between paragraphs.
+\parindent 15pt % Width of paragraph indentation.
+\topsep 8pt plus 2pt minus 4pt % Extra vertical space, in addition to
+ % \parskip, added above and below list and
+ % paragraphing environments.
+\partopsep 2pt plus 1pt minus 1pt % Extra vertical space, in addition to
+ % \parskip and \topsep, added when user
+ % leaves blank line before environment.
+\itemsep 4pt plus 2pt minus 1pt % Extra vertical space, in addition to
+ % \parskip, added between list items.
+
+% The following page-breaking penalties are defined
+
+\@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1]
+\@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2]
+\@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3]
+
+\@beginparpenalty -\@lowpenalty % Before a list or paragraph environment.
+\@endparpenalty -\@lowpenalty % After a list or paragraph environment.
+\@itempenalty -\@lowpenalty % Between list items.
+
+% \clubpenalty % 'Club line' at bottom of page.
+% \widowpenalty % 'Widow line' at top of page.
+% \displaywidowpenalty % Math display widow line.
+% \predisplaypenalty % Breaking before a math display.
+% \postdisplaypenalty % Breaking after a math display.
+% \interlinepenalty % Breaking at a line within a paragraph.
+% \brokenpenalty % Breaking after a hyphenated line.
+
+
+% ****************************************
+% * SECTIONS *
+% ****************************************
+%
+
+% \secdef{UNSTARCMDS}{STARCMDS} :
+% When defining a sectionioning command without using
+% \@startsection, you can use \secdef as follows:
+% \def\part { ... \secdef \CMDA \CMDB }
+% \def\CMDA [#1]#2{ ... } % Command to define \part[...]{...}
+% \def\CMDB #1{ ... } % Command to define \part*{...}
+
+\def\part{\par % New paragraph
+ \addvspace{4ex} % Adds vertical space above title.
+ \@afterindentfalse % Suppresses indent in first paragraph. Change
+ \secdef\@part\@spart} % to \@afterindenttrue to have indent.
+
+\def\@part[#1]#2{\ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1
+ \refstepcounter{part} % THEN step part counter
+ \addcontentsline{toc}{part}{\thepart % add toc line
+ \hspace{1em}#1}\else % ELSE add unnumbered line
+ \addcontentsline{toc}{part}{#1}\fi % FI
+ { \parindent 0pt \raggedright
+ \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1
+ \Large \bf Part \thepart % THEN Print 'Part' and
+ \par \nobreak % number in \Large boldface.
+ \fi % FI
+ \huge \bf % Select \huge boldface.
+ #2\markboth{}{}\par } % Print title and set heading marks null.
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 3ex % Space between title and text.
+ \@afterheading % Routine called after part and
+ } % section heading.
+
+% Heading for \part* command
+\def\@spart#1{{\parindent 0pt \raggedright
+ \huge \bf
+ #1\par} % Title.
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 3ex % Space between title and text.
+ \@afterheading % Routine called after part and
+ } % section heading.
+
+% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
+% optional * [ALTHEADING]{HEADING}
+% Generic command to start a section.
+% NAME : e.g., 'subsection'
+% LEVEL : a number, denoting depth of section -- i.e., section=1,
+% subsection = 2, etc. A section number will be printed if
+% and only if LEVEL < or = the value of the secnumdepth
+% counter.
+% INDENT : Indentation of heading from left margin
+% BEFORESKIP : Absolute value = skip to leave above the heading.
+% If negative, then paragraph indent of text following
+% heading is suppressed.
+% AFTERSKIP : if positive, then skip to leave below heading,
+% else - skip to leave to right of run-in heading.
+% STYLE : commands to set style
+% If '*' missing, then increments the counter. If it is present, then
+% there should be no [ALTHEADING] argument. A sectioning command
+% is normally defined to \@startsection + its first six arguments.
+
+\def\section{\clearpage \@startsection {section}{1}{\parindent}
+ {3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}{\sectionstyle}}
+\def\subsection{\@startsection{subsection}{2}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1.5ex plus .2ex}{\subsectionstyle}}
+\def\subsubsection{\@startsection{subsubsection}{3}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1.5ex plus -.2ex}{\subsubsectionstyle}}
+\def\paragraph{\@startsection {paragraph}{4}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1em}{\paragraphstyle}}
+\def\subparagraph{\@startsection {subparagraph}{5}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1em}{\subparagraphstyle}}
+\def\subsubparagraph{\@startsection {subsubparagraph}{6}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1em}{\subsubparagraphstyle}}
+\def\subsubsubparagraph{\@startsection {subsubsubparagraph}{7}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1em}{\subsubsubparagraphstyle}}
+
+% The value of the counter secnumdepth gives the depth of the
+% highest-level sectioning command that is to produce section numbers.
+%
+
+\setcounter{secnumdepth}{7}
+
+% APPENDIX
+%
+% The \appendix command must do the following:
+% -- reset the section counter to zero and
+% -- reset the subsection counter to zero
+% -- redefine the \section command to produce the proper format appendix
+
+\def\appendix{\par
+ \clearpage
+ \renewcommand{\thepage}{\Roman{appnumber}-\arabic{page}}
+ \setcounter{appnumber}{0}
+ \setcounter{section}{0}
+ \setcounter{subsection}{0}
+ \makeatletter
+ \def\section{\clearpage \addtocounter{section}{9}
+ \addtocounter{appnumber}{1} \setcounter{page}{1}
+ \addtocontents{toc}{\noindent\hspace{7em}APPENDIX~\Roman{appnumber}}
+ \setcounter{figure}{0}
+ \setcounter{table}{0}
+ \begin{center}
+ \large\bf
+ APPENDIX~\Roman{appnumber}
+ \end{center}
+ \par
+ \@startsection {section}{1}{\parindent}{3.5ex plus 1ex minus
+ .2ex}{2.3ex plus .2ex}{\sectionstyle}}
+ \makeatother
+ \def\thefigure{\Roman{appnumber}-\arabic{figure}}
+ \def\thetable{\Roman{appnumber}-\Roman{table}}
+}
+
+% ****************************************
+% * LISTS *
+% ****************************************
+%
+
+% The following commands are used to set the default values for the list
+% environment's parameters. See the LaTeX manual for an explanation of
+% the meanings of the parameters. Defaults for the list environment are
+% set as follows. First, \rightmargin, \listparindent and \itemindent
+% are set to 0pt. Then, for a Kth level list, the command \@listK is
+% called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is
+% called for a third-level list.) By convention, \@listK should set
+% \leftmargin to \leftmarginK.
+%
+% For efficiency, level-one list's values are defined at top level, and
+% \@listi is defined to set only \leftmargin
+
+\leftmargini 4.5em % 25pt
+\leftmarginii 2.2em % 22pt % > \labelsep + width of '(m)'
+\leftmarginiii 1.87em % 18.7pt % > \labelsep + width of 'vii.'
+\leftmarginiv 1.7em % 17pt % > \labelsep + width of 'M.'
+\leftmarginv 1em % 10pt
+\leftmarginvi 1em % 10pt
+
+\leftmargin\leftmargini
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+\labelsep 5pt
+\parsep 4pt plus 2pt minus 1pt
+
+\def\@listi{\leftmargin\leftmargini}
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep 4pt plus 2pt minus 1pt
+ \parsep 2pt plus 1pt minus 1pt
+ \itemsep \parsep}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep 2pt plus 1pt minus 1pt
+ \parsep \z@ \partopsep 1pt plus 0pt minus 1pt
+ \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}
+% DEC/CMS REPLACEMENT HISTORY, Element MS10.STY
+% *6 27-FEB-1986 14:31:02 MCPHERSON "Redefine \thepage for appendices, capitalize appendix"
+% *5 13-FEB-1986 13:22:27 MCPHERSON "Reset the figure and table counters for each appendix"
+% *4 7-FEB-1986 10:10:23 MCPHERSON "deleted bookform, added volumes, renumbered appendices"
+% *3 13-JAN-1986 09:01:56 MCPHERSON "Increase \parskip, increase indentation on lists "
+% *2 13-JAN-1986 08:56:05 MCPHERSON "Increase \parskip for blank line between paragraphs, increase indentation for lists"
+% *1 6-NOV-1985 15:11:23 MCPHERSON "MIL-STD-490 document style, LaTeX 2.08"
+% DEC/CMS REPLACEMENT HISTORY, Element MS10.STY
diff --git a/macros/latex209/contrib/milstd/ms11.sty b/macros/latex209/contrib/milstd/ms11.sty
new file mode 100644
index 0000000000..c9afbbcf60
--- /dev/null
+++ b/macros/latex209/contrib/milstd/ms11.sty
@@ -0,0 +1,362 @@
+% MIL-STD DOCUMENT STYLE -- for LaTeX version 2.08
+
+% ****************************************
+% * FONTS *
+% ****************************************
+%
+
+\lineskip 1pt % \lineskip is 1pt for all font sizes.
+\normallineskip 1pt
+\def\baselinestretch{1}
+
+% Each size-changing command \SIZE executes the command
+% \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE
+% where:
+% BASELINESKIP = Normal value of \baselineskip for that size. (Actual
+% value will be \baselinestretch * BASELINESKIP.)
+%
+% \FONTSIZE = Name of font-size command. The currently available
+% (preloaded) font sizes are: \vpt (5pt), \vipt (6pt),
+% \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt,
+% \xivpt, \xviipt, \xxpt, \xxvpt.
+% \@FONTSIZE = The same as the font-size command except with an
+% '@' in front---e.g., if \FONTSIZE = \xivpt then
+% \@FONTSIZE = \@xivpt.
+%
+% For reasons of efficiency that needn't concern the designer,
+% the document style defines \@normalsize instead of \normalsize . This is
+% done only for \normalsize, not for any other size-changing commands.
+
+\def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt
+\abovedisplayskip 11pt plus3pt minus6pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6.5pt plus3.5pt minus3pt}
+
+\def\small{\@setsize\small{12pt}\xpt\@xpt
+\abovedisplayskip 10pt plus2pt minus5pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6pt plus3pt minus3pt
+\def\@listi{\topsep 6pt plus 2pt minus 2pt\parsep 3pt plus 2pt minus 1pt
+\itemsep \parsep}}
+
+\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt
+\abovedisplayskip 8pt plus 2pt minus 4pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus 1pt%
+\belowdisplayshortskip 4pt plus 2pt minus 2pt
+\def\@listi{\topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt
+\itemsep \parsep}}
+
+\def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
+\def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
+\def\large{\@setsize\large{14pt}\xiipt\@xiipt}
+\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
+\def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
+\def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
+\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
+
+\normalsize % Choose the normalsize font.
+
+
+% ****************************************
+% * PAGE LAYOUT *
+% ****************************************
+%
+% All margin dimensions measured from a point one inch from top and side
+% of page. Dimensions shrink by about 2 percent
+
+% SIDE MARGINS:
+\if@twoside % Values for two-sided printing:
+ \oddsidemargin 36pt % Left margin on odd-numbered pages.
+ \evensidemargin 74pt % Left margin on even-numbered pages.
+ \marginparwidth 100pt % Width of marginal notes.
+\else % Values for one-sided printing:
+ \oddsidemargin 0pt % Note that \oddsidemargin = \evensidemargin
+ \evensidemargin 0pt
+ \marginparwidth 83pt
+\fi
+\marginparsep 10pt % Horizontal space between outer margin and
+ % marginal note
+
+
+% VERTICAL SPACING:
+ % Top of page:
+\topmargin -35pt % Nominal distance from top of page to top of
+
+\headheight 24pt % Height of box containing running head.
+\headsep 25pt % Space between running head and text.
+% \topskip = 10pt % '\baselineskip' for first line of page.
+ % Bottom of page:
+\footheight 12pt % Height of box containing running foot.
+\footskip 30pt % Distance from baseline of box containing foot
+ % to baseline of last line of text.
+
+
+% DIMENSION OF TEXT:
+
+\textheight 8.33in % Height of text (including footnotes and figures,
+ % excluding running head and foot).
+\textwidth 6.25in % Width of text line.
+ % For two-column mode:
+\columnsep 10pt % Space between columns
+\columnseprule 0pt % Width of rule between columns.
+
+% A \raggedbottom command causes 'ragged bottom' pages: pages set to
+% natural height instead of being stretched to exactly \textheight.
+
+% FOOTNOTES:
+
+\footnotesep 12pt % Height of strut placed at the beginning of every
+ % footnote.
+\skip\footins 6pt plus 2pt minus 2pt % Space between last line of text and
+ % top of first footnote.
+
+% FLOATS: (a float is something like a figure or table)
+%
+% FOR FLOATS ON A TEXT PAGE:
+%
+% ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
+\floatsep 12pt plus 2pt minus 2pt % Space between adjacent floats moved
+ % to top or bottom of text page.
+\textfloatsep 20pt plus 2pt minus 4pt % Space between main text and floats
+ % at top or bottom of page.
+\intextsep 12pt plus 2pt minus 2pt % Space between in-text figures and
+ % text.
+\@maxsep 20pt % The maximum of \floatsep,
+ % \textfloatsep and \intextsep (minus
+ % the stretch and shrink).
+% TWO-COLUMN FLOATS IN TWO-COLUMN MODE:
+\dblfloatsep 12pt plus 2pt minus 2pt % Same as \floatsep for double-column
+ % figures in two-column mode.
+\dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for double-column
+ % floats.
+\@dblmaxsep 20pt % The maximum of \dblfloatsep and
+ % \dbltexfloatsep.
+
+% FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN:
+% ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
+\@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must be
+ % 0pt plus ...)
+\@fpsep 8pt plus 2fil % Space between floats on float page/column.
+\@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must be
+ % 0pt plus ... )
+
+% DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE.
+\@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...)
+\@dblfpsep 8pt plus 2fil % Space between floats on float page.
+\@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be
+ % 0pt plus ... )
+% MARGINAL NOTES:
+%
+\marginparpush 5pt % Minimum vertical separation between two marginal
+ % notes.
+
+
+% ****************************************
+% * PARAGRAPHING *
+% ****************************************
+%
+\parskip 11pt plus 1pt % Extra vertical space between paragraphs.
+\parindent 17pt % Width of paragraph indentation.
+\topsep 9pt plus 3pt minus 5pt % Extra vertical space, in addition to
+ % \parskip, added above and below list and
+ % paragraphing environments.
+\partopsep 3pt plus 1pt minus 2pt % Extra vertical space, in addition to
+ % \parskip and \topsep, added when user
+ % leaves blank line before environment.
+\itemsep 4.5pt plus 2pt minus 1pt % Extra vertical space, in addition to
+ % \parskip, added between list items.
+
+% The following page-breaking penalties are defined
+
+\@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1]
+\@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2]
+\@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3]
+
+\@beginparpenalty -\@lowpenalty % Before a list or paragraph environment.
+\@endparpenalty -\@lowpenalty % After a list or paragraph environment.
+\@itempenalty -\@lowpenalty % Between list items.
+
+% \clubpenalty % 'Club line' at bottom of page.
+% \widowpenalty % 'Widow line' at top of page.
+% \displaywidowpenalty % Math display widow line.
+% \predisplaypenalty % Breaking before a math display.
+% \postdisplaypenalty % Breaking after a math display.
+% \interlinepenalty % Breaking at a line within a paragraph.
+% \brokenpenalty % Breaking after a hyphenated line.
+
+
+% ****************************************
+% * SECTIONS *
+% ****************************************
+%
+
+% \secdef{UNSTARCMDS}{STARCMDS} :
+% When defining a sectionioning command without using
+% \@startsection, you can use \secdef as follows:
+% \def\part { ... \secdef \CMDA \CMDB }
+% \def\CMDA [#1]#2{ ... } % Command to define \part[...]{...}
+% \def\CMDB #1{ ... } % Command to define \part*{...}
+
+\def\part{\par % New paragraph
+ \addvspace{4ex} % Adds vertical space above title.
+ \@afterindentfalse % Suppresses indent in first paragraph. Change
+ \secdef\@part\@spart} % to \@afterindenttrue to have indent.
+
+\def\@part[#1]#2{\ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1
+ \refstepcounter{part} % THEN step part counter
+ \addcontentsline{toc}{part}{\thepart % add toc line
+ \hspace{1em}#1}\else % ELSE add unnumbered line
+ \addcontentsline{toc}{part}{#1}\fi % FI
+ { \parindent 0pt \raggedright
+ \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1
+ \Large \bf Part \thepart % THEN Print 'Part' and
+ \par\nobreak % number in \Large boldface.
+ \fi % FI
+ \huge \bf % Select \huge boldface.
+ #2\markboth{}{}\par } % Print title and set heading marks null.
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 3ex % Space between title and text.
+ \@afterheading % Routine called after part and
+ } % section heading.
+
+% Heading for \part* command
+\def\@spart#1{{\parindent 0pt \raggedright
+ \huge \bf
+ #1\par} % Title.
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 3ex % Space between title and text.
+ \@afterheading % Routine called after part and
+ } % section heading.
+
+% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
+% optional * [ALTHEADING]{HEADING}
+% Generic command to start a section.
+% NAME : e.g., 'subsection'
+% LEVEL : a number, denoting depth of section -- i.e., section=1,
+% subsection = 2, etc. A section number will be printed if
+% and only if LEVEL < or = the value of the secnumdepth
+% counter.
+% INDENT : Indentation of heading from left margin
+% BEFORESKIP : Absolute value = skip to leave above the heading.
+% If negative, then paragraph indent of text following
+% heading is suppressed.
+% AFTERSKIP : if positive, then skip to leave below heading,
+% else - skip to leave to right of run-in heading.
+% STYLE : commands to set style
+% If '*' missing, then increments the counter. If it is present, then
+% there should be no [ALTHEADING] argument. A sectioning command
+% is normally defined to \@startsection + its first six arguments.
+
+\def\section{\clearpage \@startsection {section}{1}{\parindent}
+ {3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}{\sectionstyle}}
+\def\subsection{\@startsection{subsection}{2}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1.5ex plus .2ex}{\subsectionstyle}}
+\def\subsubsection{\@startsection{subsubsection}{3}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1.5ex plus -.2ex}{\subsubsectionstyle}}
+\def\paragraph{\@startsection {paragraph}{4}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1em}{\paragraphstyle}}
+\def\subparagraph{\@startsection {subparagraph}{5}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1em}{\subparagraphstyle}}
+\def\subsubparagraph{\@startsection {subsubparagraph}{6}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1em}{\subsubparagraphstyle}}
+\def\subsubsubparagraph{\@startsection {subsubsubparagraph}{7}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1em}{\subsubsubparagraphstyle}}
+
+% The value of the counter secnumdepth gives the depth of the
+% highest-level sectioning command that is to produce section numbers.
+%
+
+\setcounter{secnumdepth}{7}
+
+% APPENDIX
+%
+% The \appendix command must do the following:
+% -- reset the section counter to zero and
+% -- reset the subsection counter to zero
+% -- redefine the \section command to produce the proper format appendix
+
+\def\appendix{\par
+ \clearpage
+ \renewcommand{\thepage}{\Roman{appnumber}-\arabic{page}}
+ \setcounter{appnumber}{0}
+ \setcounter{section}{0}
+ \setcounter{subsection}{0}
+ \makeatletter
+ \def\section{\clearpage \addtocounter{section}{9}
+ \addtocounter{appnumber}{1} \setcounter{page}{1}
+ \addtocontents{toc}{\noindent\hspace{7em}APPENDIX~\Roman{appnumber}}
+ \setcounter{figure}{0}
+ \setcounter{table}{0}
+ \begin{center}
+ \large\bf
+ APPENDIX~\Roman{appnumber}
+ \end{center}
+ \par
+ \@startsection {section}{1}{\parindent}{3.5ex plus 1ex minus
+ .2ex}{2.3ex plus .2ex}{\sectionstyle}}
+ \makeatother
+ \def\thefigure{\Roman{appnumber}-\arabic{figure}}
+ \def\thetable{\Roman{appnumber}-\Roman{table}}
+}
+
+% ****************************************
+% * LISTS *
+% ****************************************
+%
+
+% The following commands are used to set the default values for the list
+% environment's parameters. See the LaTeX manual for an explanation of
+% the meanings of the parameters. Defaults for the list environment are
+% set as follows. First, \rightmargin, \listparindent and \itemindent
+% are set to 0pt. Then, for a Kth level list, the command \@listK is
+% called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is
+% called for a third-level list.) By convention, \@listK should set
+% \leftmargin to \leftmarginK.
+%
+% For efficiency, level-one list's values are defined at top level, and
+% \@listi is defined to set only \leftmargin.
+
+\leftmargini 4.5em
+\leftmarginii 2.2em % > \labelsep + width of '(m)'
+\leftmarginiii 1.87em % > \labelsep + width of 'vii.'
+\leftmarginiv 1.7em % > \labelsep + width of 'M.'
+\leftmarginv 1em
+\leftmarginvi 1em
+
+\leftmargin\leftmargini
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+\labelsep .5em
+\parsep 4.5pt plus 2pt minus 1pt
+
+\def\@listi{\leftmargin\leftmargini}
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep 4.5pt plus 2pt minus 1pt
+ \parsep 2pt plus 1pt minus 1pt
+ \itemsep \parsep}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep 2pt plus 1pt minus 1pt
+ \parsep \z@ \partopsep 1pt plus 0pt minus 1pt
+ \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}
+% DEC/CMS REPLACEMENT HISTORY, Element MS11.STY
+% *5 27-FEB-1986 14:31:14 MCPHERSON "Redefine \thepage for appendices, capitalize appendix"
+% *4 13-FEB-1986 13:22:41 MCPHERSON "Reset the figure and table counters for each appendix"
+% *3 7-FEB-1986 10:10:27 MCPHERSON "deleted bookform, added volumes, renumbered appendices"
+% *2 13-JAN-1986 09:02:13 MCPHERSON "Increase \parskip, increase indentation on lists "
+% *1 6-NOV-1985 15:11:29 MCPHERSON "MIL-STD-490 document style, LaTeX 2.08"
+% DEC/CMS REPLACEMENT HISTORY, Element MS11.STY
diff --git a/macros/latex209/contrib/milstd/ms12.sty b/macros/latex209/contrib/milstd/ms12.sty
new file mode 100644
index 0000000000..25a38a6bf3
--- /dev/null
+++ b/macros/latex209/contrib/milstd/ms12.sty
@@ -0,0 +1,363 @@
+% MIL-STD DOCUMENT STYLE -- for LaTeX version 2.08
+
+% ****************************************
+% * FONTS *
+% ****************************************
+%
+
+\lineskip 1pt % \lineskip is 1pt for all font sizes.
+\normallineskip 1pt
+\def\baselinestretch{1}
+
+% Each size-changing command \SIZE executes the command
+% \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE
+% where:
+% BASELINESKIP = Normal value of \baselineskip for that size. (Actual
+% value will be \baselinestretch * BASELINESKIP.)
+%
+% \FONTSIZE = Name of font-size command. The currently available
+% (preloaded) font sizes are: \vpt (5pt), \vipt (6pt),
+% \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt,
+% \xivpt, \xviipt, \xxpt, \xxvpt.
+% \@FONTSIZE = The same as the font-size command except with an
+% '@' in front---e.g., if \FONTSIZE = \xivpt then
+% \@FONTSIZE = \@xivpt.
+%
+% For reasons of efficiency that needn't concern the designer,
+% the document style defines \@normalsize instead of \normalsize . This is
+% done only for \normalsize, not for any other size-changing commands.
+
+\def\@normalsize{\@setsize\normalsize{15pt}\xiipt\@xiipt
+\abovedisplayskip 12pt plus3pt minus7pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6.5pt plus3.5pt minus3pt}
+
+\def\small{\@setsize\small{13.6pt}\xipt\@xipt
+\abovedisplayskip 11pt plus3pt minus6pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6.5pt plus3.5pt minus3pt
+\def\@listi{\parsep 4.5pt plus 2pt minus 1pt
+ \itemsep \parsep
+ \topsep 9pt plus 3pt minus 5pt}}
+
+\def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt
+\abovedisplayskip 10pt plus2pt minus5pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6pt plus3pt minus3pt
+\def\@listi{\topsep 6pt plus 2pt minus 2pt\parsep 3pt plus 2pt minus 1pt
+\itemsep \parsep}}
+
+\def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
+\def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
+\def\large{\@setsize\large{18pt}\xivpt\@xivpt}
+\def\Large{\@setsize\Large{22pt}\xviipt\@xviipt}
+\def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt}
+\def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt}
+\let\Huge=\huge
+
+\normalsize % Choose the normalsize font.
+
+
+% ****************************************
+% * PAGE LAYOUT *
+% ****************************************
+%
+% All margin dimensions measured from a point one inch from top and side
+% of page. Dimensions shrink by about 2 percent
+
+% SIDE MARGINS:
+\if@twoside % Values for two-sided printing:
+ \oddsidemargin 21pt % Left margin on odd-numbered pages.
+ \evensidemargin 59pt % Left margin on even-numbered pages.
+ \marginparwidth 85pt % Width of marginal notes.
+\else % Values for one-sided printing:
+ \oddsidemargin 0pt % Note that \oddsidemargin = \evensidemargin
+ \evensidemargin 0pt
+ \marginparwidth 68pt
+\fi
+\marginparsep 10pt % Horizontal space between outer margin and
+ % marginal note
+
+
+% VERTICAL SPACING:
+ % Top of page:
+\topmargin -35pt % Nominal distance from top of page to top of
+ % box containing running head.
+\headheight 24pt % Height of box containing running head.
+\headsep 25pt % Space between running head and text.
+% \topskip = 10pt % '\baselineskip' for first line of page.
+ % Bottom of page:
+\footheight 12pt % Height of box containing running foot.
+\footskip 30pt % Distance from baseline of box containing foot
+ % to baseline of last line of text.
+
+
+% DIMENSION OF TEXT:
+
+\textheight 8.33in % Height of text (including footnotes and figures,
+ % excluding running head and foot).
+\textwidth 6.25in % Width of text line.
+ % For two-column mode:
+\columnsep 10pt % Space between columns
+\columnseprule 0pt % Width of rule between columns.
+
+% A \raggedbottom command causes 'ragged bottom' pages: pages set to
+% natural height instead of being stretched to exactly \textheight.
+
+% FOOTNOTES:
+
+\footnotesep 14pt % Height of strut placed at the beginning of every
+ % footnote.
+\skip\footins 8pt plus 2pt minus 4pt % Space between last line of text and
+ % top of first footnote.
+
+% FLOATS: (a float is something like a figure or table)
+%
+% FOR FLOATS ON A TEXT PAGE:
+%
+% ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
+\floatsep 14pt plus 2pt minus 4pt % Space between adjacent floats moved
+ % to top or bottom of text page.
+\textfloatsep 20pt plus 2pt minus 4pt % Space between main text and floats
+ % at top or bottom of page.
+\intextsep 14pt plus 4pt minus 4pt % Space between in-text figures and
+ % text.
+\@maxsep 20pt % The maximum of \floatsep,
+ % \textfloatsep and \intextsep (minus
+ % the stretch and shrink).
+% TWO-COLUMN FLOATS IN TWO-COLUMN MODE:
+\dblfloatsep 14pt plus 2pt minus 4pt % Same as \floatsep for double-column
+ % figures in two-column mode.
+\dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for double-column
+ % floats.
+\@dblmaxsep 20pt % The maximum of \dblfloatsep and
+ % \dbltexfloatsep.
+
+% FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN:
+% ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
+\@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must be
+ % 0pt plus ...)
+\@fpsep 10pt plus 2fil % Space between floats on float page/column.
+\@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must be
+ % 0pt plus ... )
+
+% DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE.
+\@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...)
+\@dblfpsep 10pt plus 2fil % Space between floats on float page.
+\@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be
+ % 0pt plus ... )
+% MARGINAL NOTES:
+%
+\marginparpush 7pt % Minimum vertical separation between two marginal
+ % notes.
+
+
+% ****************************************
+% * PARAGRAPHING *
+% ****************************************
+%
+\parskip 12pt plus 1pt % Extra vertical space between paragraphs.
+\parindent 1.5em % Width of paragraph indentation.
+\topsep 10pt plus 4pt minus 6pt % Extra vertical space, in addition to
+ % \parskip, added above and below list and
+ % paragraphing environments.
+\partopsep 3pt plus 2pt minus 2pt % Extra vertical space, in addition to
+ % \parskip and \topsep, added when user
+ % leaves blank line before environment.
+\itemsep 5pt plus 2.5pt minus 1pt % Extra vertical space, in addition to
+ % \parskip, added between list items.
+
+% The following page-breaking penalties are defined
+
+\@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1]
+\@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2]
+\@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3]
+
+\@beginparpenalty -\@lowpenalty % Before a list or paragraph environment.
+\@endparpenalty -\@lowpenalty % After a list or paragraph environment.
+\@itempenalty -\@lowpenalty % Between list items.
+
+% \clubpenalty % 'Club line' at bottom of page.
+% \widowpenalty % 'Widow line' at top of page.
+% \displaywidowpenalty % Math display widow line.
+% \predisplaypenalty % Breaking before a math display.
+% \postdisplaypenalty % Breaking after a math display.
+% \interlinepenalty % Breaking at a line within a paragraph.
+% \brokenpenalty % Breaking after a hyphenated line.
+
+
+% ****************************************
+% * SECTIONS *
+% ****************************************
+%
+
+% \secdef{UNSTARCMDS}{STARCMDS} :
+% When defining a sectionioning command without using
+% \@startsection, you can use \secdef as follows:
+% \def\part { ... \secdef \CMDA \CMDB }
+% \def\CMDA [#1]#2{ ... } % Command to define \part[...]{...}
+% \def\CMDB #1{ ... } % Command to define \part*{...}
+
+\def\part{\par % New paragraph
+ \addvspace{4ex} % Adds vertical space above title.
+ \@afterindentfalse % Suppresses indent in first paragraph. Change
+ \secdef\@part\@spart} % to \@afterindenttrue to have indent.
+
+\def\@part[#1]#2{\ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1
+ \refstepcounter{part} % THEN step part counter
+ \addcontentsline{toc}{part}{\thepart % add toc line
+ \hspace{1em}#1}\else % ELSE add unnumbered line
+ \addcontentsline{toc}{part}{#1}\fi % FI
+ { \parindent 0pt \raggedright
+ \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1
+ \Large \bf Part \thepart % THEN Print 'Part' and
+ \par\nobreak % number in \Large boldface.
+ \fi % FI
+ \huge \bf % Select \huge boldface.
+ #2\markboth{}{}\par } % Print title and set heading marks null.
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 3ex % Space between title and text.
+ \@afterheading % Routine called after part and
+ } % section heading.
+
+% Heading for \part* command
+\def\@spart#1{{\parindent 0pt \raggedright
+ \huge \bf
+ #1\par} % Title.
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 3ex % Space between title and text.
+ \@afterheading % Routine called after part and
+ } % section heading.
+
+% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
+% optional * [ALTHEADING]{HEADING}
+% Generic command to start a section.
+% NAME : e.g., 'subsection'
+% LEVEL : a number, denoting depth of section -- e.g., section=1,
+% subsection = 2, etc. A section number will be printed if
+% and only if LEVEL < or = the value of the secnumdepth
+% counter.
+% INDENT : Indentation of heading from left margin
+% BEFORESKIP : Absolute value = skip to leave above the heading.
+% If negative, then paragraph indent of text following
+% heading is suppressed.
+% AFTERSKIP : if positive, then skip to leave below heading,
+% else - skip to leave to right of run-in heading.
+% STYLE : commands to set style
+% If '*' missing, then increments the counter. If it is present, then
+% there should be no [ALTHEADING] argument. A sectioning command
+% is normally defined to \@startsection + its first six arguments.
+
+\def\section{\clearpage \@startsection {section}{1}{\parindent}
+ {3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}{\sectionstyle}}
+\def\subsection{\@startsection{subsection}{2}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1.5ex plus .2ex}{\subsectionstyle}}
+\def\subsubsection{\@startsection{subsubsection}{3}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1.5ex plus -.2ex}{\subsubsectionstyle}}
+\def\paragraph{\@startsection {paragraph}{4}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1em}{\paragraphstyle}}
+\def\subparagraph{\@startsection {subparagraph}{5}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1em}{\subparagraphstyle}}
+\def\subsubparagraph{\@startsection {subsubparagraph}{6}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1em}{\subsubparagraphstyle}}
+\def\subsubsubparagraph{\@startsection {subsubsubparagraph}{7}{\parindent}
+ {3.25ex plus 1ex minus .2ex}{-1em}{\subsubsubparagraphstyle}}
+
+% The value of the counter secnumdepth gives the depth of the
+% highest-level sectioning command that is to produce section numbers.
+%
+
+\setcounter{secnumdepth}{7}
+
+% APPENDIX
+%
+% The \appendix command must do the following:
+% -- reset the section counter to zero and
+% -- reset the subsection counter to zero
+% -- redefine the \section command to produce the proper format appendix
+
+\def\appendix{\par
+ \clearpage
+ \renewcommand{\thepage}{\Roman{appnumber}-\arabic{page}}
+ \setcounter{appnumber}{0}
+ \setcounter{section}{0}
+ \setcounter{subsection}{0}
+ \makeatletter
+ \def\section{\clearpage \addtocounter{section}{9}
+ \addtocounter{appnumber}{1} \setcounter{page}{1}
+ \addtocontents{toc}{\noindent\hspace{7em}APPENDIX~\Roman{appnumber}}
+ \setcounter{figure}{0}
+ \setcounter{table}{0}
+ \begin{center}
+ \large\bf
+ APPENDIX~\Roman{appnumber}
+ \end{center}
+ \par
+ \@startsection {section}{1}{\parindent}{3.5ex plus 1ex minus
+ .2ex}{2.3ex plus .2ex}{\sectionstyle}}
+ \makeatother
+ \def\thefigure{\Roman{appnumber}-\arabic{figure}}
+ \def\thetable{\Roman{appnumber}-\Roman{table}}
+}
+
+% ****************************************
+% * LISTS *
+% ****************************************
+%
+
+% The following commands are used to set the default values for the list
+% environment's parameters. See the LaTeX manual for an explanation of
+% the meanings of the parameters. Defaults for the list environment are
+% set as follows. First, \rightmargin, \listparindent and \itemindent
+% are set to 0pt. Then, for a Kth level list, the command \@listK is
+% called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is
+% called for a third-level list.) By convention, \@listK should set
+% \leftmargin to \leftmarginK.
+%
+% For efficiency, level-one list's values are defined at top level, and
+% \@listi is defined to set only \leftmargin.
+
+\leftmargini 4.5em
+\leftmarginii 2.2em % > \labelsep + width of '(m)'
+\leftmarginiii 1.87em % > \labelsep + width of 'vii.'
+\leftmarginiv 1.7em % > \labelsep + width of 'M.'
+\leftmarginv 1em
+\leftmarginvi 1em
+
+\leftmargin\leftmargini
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+\labelsep .5em
+\parsep 5pt plus 2.5pt minus 1pt
+
+\def\@listi{\leftmargin\leftmargini}
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep 5pt plus 2.5pt minus 1pt
+ \parsep 2.5pt plus 1pt minus 1pt
+ \itemsep \parsep}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep 2.5pt plus 1pt minus 1pt
+ \parsep \z@ \partopsep 1pt plus 0pt minus 1pt
+ \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}
+% DEC/CMS REPLACEMENT HISTORY, Element MS12.STY
+% *5 27-FEB-1986 14:31:28 MCPHERSON "Redefine \thepage for appendices, capitalize appendix"
+% *4 13-FEB-1986 13:22:54 MCPHERSON "Reset the figure and table counters for each appendix"
+% *3 7-FEB-1986 10:10:31 MCPHERSON "deleted bookform, added volumes, renumbered appendices"
+% *2 13-JAN-1986 09:02:27 MCPHERSON "Increase \parskip, increase indentation on lists "
+% *1 6-NOV-1985 15:11:34 MCPHERSON "MIL-STD-490 document style, LaTeX 2.08"
+% DEC/CMS REPLACEMENT HISTORY, Element MS12.STY