diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex209/contrib/milstd |
Initial commit
Diffstat (limited to 'macros/latex209/contrib/milstd')
-rw-r--r-- | macros/latex209/contrib/milstd/milstd.sty | 818 | ||||
-rw-r--r-- | macros/latex209/contrib/milstd/ms10.sty | 363 | ||||
-rw-r--r-- | macros/latex209/contrib/milstd/ms11.sty | 362 | ||||
-rw-r--r-- | macros/latex209/contrib/milstd/ms12.sty | 363 |
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 |