\typeout{Document Style 'memo'. Released March 28, 1990} % Steve Sydoriak wrote this software. % Copyright, 1990, The Regents of the University of California. % This software was produced under a U.S. Government contract % (W-7405-ENG-36) by the Los Alamos National Laboratory, which is % operated by the University of California for the U.S. Department % of Energy. The U.S. Government is licensed to use, reproduce, % and distribute this software. Permission is granted to the public % to copy and use this software without charge, provided that this % notice and any statement of authorship are reproduced on all % copies. Neither the Government nor the University makes any % warranty, express or implied, or assumes any liability or % responsibility for the use of this software. % *************************************** % *** BEGINNING OF ARTICLE.DOC MACROS *** % *************************************** % The following portion of this file was copied from article.doc, % with some of the lines commented out or added with % MEMO CHANGES % **************************************** % * BIBLIOGRAPHY * % **************************************** % % The thebibliography environment executes the following commands: % % \def\newblock{\hskip .11em plus .33em minus -.07em} -- % Defines the `closed' format, where the blocks (major units of % information) of an entry run together. % % \sloppy -- Used because it's rather hard to do line breaks in % bibliographies, % % \sfcode`\.=1000\relax -- % Causes a `.' (period) not toproduce an end-of-sentence space. % % MEMO CHANGES\def\thebibliography#1{\section*{References\@mkboth % MEMO CHANGES {REFERENCES}{REFERENCES}}\list \def\thebibliography#1{%% MEMO CHANGES \par% MEMO CHANGES \vspace{\baselineskip}% MEMO CHANGES REFERENCES% MEMO CHANGES \list% MEMO CHANGES {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth \advance\leftmargin\labelsep \usecounter{enumi}}% % The following line reflects the change between 16 Mar 88 and 4 Sep 86 % versions of article.sty. \def\newblock{\hskip .11em plus .33em minus -.07em}% \sloppy\clubpenalty4000\widowpenalty4000 \sfcode`\.=1000\relax}% \let\endthebibliography=\endlist % **************************************** % * 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. % changed 25 Jun 86 to fix according to Howard Trickey: % instead of \unhbox\@tempboxa\par we do #1: #2\par \long\def\@makecaption#1#2{% \vskip 10pt \setbox\@tempboxa\hbox{#1: #2}% \ifdim \wd\@tempboxa >\hsize % IF longer than one line: #1: #2\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{tbp} \def\ftype@figure{1} \def\ext@figure{lof} \def\fnum@figure{Figure \thefigure} \def\figure{\@float{figure}} \let\endfigure\end@float \@namedef{figure*}{\@dblfloat{figure}} \@namedef{endfigure*}{\end@dblfloat} % TABLE \newcounter{table} \def\thetable{\@arabic\c@table} \def\fps@table{tbp} \def\ftype@table{2} \def\ext@table{lot} \def\fnum@table{Table \thetable} \def\table{\@float{table}} \let\endtable\end@float \@namedef{table*}{\@dblfloat{table}} \@namedef{endtable*}{\end@dblfloat} % % END OF ARTICLE.DOC MACROS % ************************* % *** LETTER.STY MACROS *** % ************************* % The following portion of this file was copied from letter.doc, % with many of the lines commented out with % MEMO CHANGES % LETTER DOCUMENT STYLE -- Released 21 July 1985 % for LaTeX version 2.09 % Copyright (C) 1985 by Leslie Lamport % MEMO CHANGES \typeout{Document Style 'letter'. Released 21 July 1985} % The type size option is handled by \def'ing \@ptsize to the following % values: % 10pt : 0, 11pt : 1, 12pt : 2 % Then loading the different fonts accordingly. % \def\@ptsize{0} % Default is 10pt. \@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option. \@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option. % no twoside option % \@twosidefalse % draft option % % \overfullrule = 0pt % Default is don't mark overfull hboxes. \def\ds@draft{\overfullrule 5pt} % Causes overfull hboxes to be marked. % 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 % **************************************** % * 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. \ifcase \@ptsize\relax % 10pt option \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt \abovedisplayskip 10pt plus2pt minus5pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt% \belowdisplayshortskip 6pt plus3pt minus3pt% \let\@listi\@listI} % Setting of \@listi added 22 Dec 87 \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{\leftmargin\leftmargini %% Def of \@list i added 22 Dec 87 \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{\leftmargin\leftmargini %% Def of \@list i added 22 Dec 87 \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} \or % 11pt option \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt \abovedisplayskip 11pt plus3pt minus6pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt% \belowdisplayshortskip 6.5pt plus3.5pt minus3pt% \let\@listi\@listI} % Setting of \@listi added 22 Dec 87 \def\small{\@setsize\small{12pt}\xpt\@xpt \abovedisplayskip 10pt plus2pt minus5pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt% \belowdisplayshortskip 6pt plus3pt minus3pt% \def\@listi{\leftmargin\leftmargini %% Def of \@listi added 22 Dec 87 \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{\leftmargin\leftmargini %% Def of \@listi added 22 Dec 87 \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} \or % 12pt option \def\@normalsize{\@setsize\normalsize{15pt}\xiipt\@xiipt \abovedisplayskip 12pt plus3pt minus7pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt% \belowdisplayshortskip 6.5pt plus3.5pt minus3pt% \let\@listi\@listI} % Setting of \@listi added 22 Dec 87 \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{\leftmargin\leftmargini %% Def of \@list i added 22 Dec 87 \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{\leftmargin\leftmargini %% Def of \@list i added 22 Dec 87 \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 \fi \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: % MEMO CHANGES \oddsidemargin 53pt % Left margin on odd-numbered pages. % MEMO CHANGES \evensidemargin 53pt % Left margin on even-numbered pages. \marginparwidth 90pt % Width of marginal notes. \marginparsep 11pt % Horizontal space between outer margin and % marginal note \marginparpush 5pt % Minimum vertical space between marginal notes. % VERTICAL SPACING: % Top of page: % MEMO CHANGES \topmargin 27pt % Nominal distance from top of page to top of % box containing running head. % MEMO CHANGES \headheight 12pt % Height of box containing running head. % MEMO CHANGES \headsep 45pt % 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 25pt % Distance from baseline of box containing foot % to baseline of last line of text. % DIMENSION OF TEXT: % MEMO CHANGES \textheight 505pt%Height of text (including footnotes and figures % excluding running head and foot). % MEMO CHANGES \textwidth 365pt % Width of text line. % For two-column mode: % MEMO CHANGES \columnsep 10pt % Space between columns % MEMO CHANGES \columnseprule 0pt % Width of rule between columns. % MEMO CHANGES \raggedbottom % 'ragged bottom' (all pages set to natural % height, with no stretch or shrinkage) % FOOTNOTES: \footnotesep 12pt % Height of strut placed at the beginning of every % footnote. \skip\footins 10pt plus 2pt minus 4pt % Space between last line of text and % top of first footnote. % FLOATS: % The following items must be defined, even though there are no % floats in this style. \floatsep 12pt plus 2pt minus 2pt \textfloatsep 20pt plus 2pt minus 4pt \intextsep 12pt plus 2pt minus 2pt % MEMO CHANGES \dblfloatsep 12pt plus 2pt minus 2pt % MEMO CHANGES \dbltextfloatsep 20pt plus 2pt minus 4pt \@maxsep 20pt % MEMO CHANGES \@dblmaxsep 20pt \@fptop 0pt plus 1fil \@fpsep 8pt plus 2fil \@fpbot 0pt plus 1fil % MEMO CHANGES \@dblfptop 0pt plus 1fil % MEMO CHANGES \@dblfpsep 8pt plus 2fil % MEMO CHANGES \@dblfpbot 0pt plus 1fil % **************************************** % * LETTER COMMANDS * % **************************************** % MEMO CHANGES ** This whole section of letter.doc was discarded. % **************************************** % * THE SRI LETTER FORMAT * % **************************************** % MEMO CHANGES ** This whole section of letter.doc was discarded. % **************************************** % * THE GENERIC LETTER COMMANDS * % **************************************** % MEMO CHANGES ** This whole section of letter.doc was discarded. % **************************************** % * PAGE STYLES * % **************************************** % MEMO CHANGES ** This whole section of letter.doc was discarded. % **************************************** % * PARAGRAPHING * % **************************************** % % MEMO CHANGES \parskip .7em % Extra vertical space between paragraphs. \parindent 0pt % Width of paragraph indentation. % MEMO CHANGES \topsep .4em % Extra vertical space, in addition to % \parskip, added above and below list and % paragraphing environments. \partopsep 0pt % Extra vertical space, in addition to % \parskip and \topsep, added when user % leaves blank line before environment. % MEMO CHANGES \itemsep .4em % 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 % SET BY THE LETTER COMMANDS % \brokenpenalty % Breaking after a hyphenated line. % **************************************** % * LISTS * % **************************************** % MEMO CHANGES ** This whole section of letter.doc has been redefined % in \opening, after \@typeface has been defined. % **************************************** % * OTHER ENVIRONMENTS * % **************************************** % % % THEOREM % \@begintheorem ... \@endtheorem are the commands executed at the % beginning and end of a (user-defined) theorem-like environment. % Except \@opargbegintheorem is executed when an optional argument is % given. Cf. LATEX.TEX. % % \def\@begintheorem#1#2{\it \trivlist \item[\hskip \labelsep{\bf #1\ #2}]} % \def\@opargbegintheorem#1#2#3{\it \trivlist % \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]} % \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 \arraycolsep 5pt % Half the space between columns in an array environment. % MEMO CHANGES \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 % % MEMO CHANGES \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. % **************************************** % * 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, with \hsize = \columnwidth. % \long\def\@makefntext#1{\noindent % Macro to make the text of a footnote \hangindent 5pt\hbox to 5pt{\hss $^{\@thefnmark}$}#1} % \@makefnmark : A macro to generate the footnote marker that goes % in the text. Default definition used. % **************************************** % * MISCELLANEOUS * % **************************************** % % DATE % \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} % **************************************** % * INITIALIZATION * % **************************************** % % Default initializations % Fixed sxs 89/06/23 % MEMO CHANGES \smallskipamount=.5\parskip % These values are used by the % letter macros. % MEMO CHANGES \medskipamount=\parskip % MEMO CHANGES \bigskipamount=2\parskip % MEMO CHANGES \ps@plain % 'plain' page style \pagenumbering{arabic} % Arabic page numbers \onecolumn % Single-column % MEMO CHANGES \@fileswfalse % \@fileswfalse inhibits writing of .AUX file. \@fileswtrue % END OF LETTER.STY -- THE LETTER DOCUMENT STYLE % % *********************************************************** % *** BEGINNING OF LOCALLY WRITTEN MACROS FOR LANL MEMOS. *** % *********************************************************** % % *************************************** % *** DEFINE AND INITIALIZE REGISTERS *** % *************************************** % \NEWLENGTH, \NEWCOUNTER, \NEWCOUNT, \NEWTOKS, \NEWSAVEBOX, \NEWDIMEN, % \NEWSKIP, \NEWIF \newlength{\@lengthlabel} \newlength{\@lengthrule} \newlength{\@lengthdate} \newlength{\@lengthname} \newcounter{@countlist} \newcount\@countverticalposition \newcount\@countclasssep \newcount\@counttemp \newcount\@counttemptwo \newcount\@countto \newcount\@countfrom \newcount\@countthru \newcount\@countcy \newcount\@countattachments \newcount\@countreference \newcount\@countenc \newcount\@countdistribution \newcount\@countleftcolon \newcount\@countrightcolon \newcount\@countleftheader \newcount\@countrightheader \newcount\@countmemolist \newtoks\@toksto \newtoks\@toksfrom \newtoks\@toksthru \newtoks\@tokscy \newtoks\@toksattachments \newtoks\@toksenc \newtoks\@toksreference \newtoks\@toksdistribution \newtoks\@toksheaderone \newtoks\@toksheadertwo \newtoks\@toksbeforenewline \newtoks\@toksafternewline \newtoks\@toksbeforecomma \newtoks\@toksempty \newtoks\@toksblank \newtoks\@toksnewline \newtoks\@toksremaining \newtoks\@toksmultipleto \newtoks\@toksitem \newsavebox{\@boxtemp} \newsavebox{\@boxclasspage} \newsavebox{\@boxpagetwoheader} \newdimen\@dimentoppagetwo \newdimen\@dimenspacetosubject \newdimen\@dimenpagetwoheader \newdimen\@dimenfirstpageleftheader \newdimen\@dimenwdtt \newdimen\@dimenmemopaperhcorr \newdimen\@dimenmemopapervcorr \newdimen\@dimenspaceaftercolon \newdimen\descriptionmargin \newdimen\@dimenversemargin \newdimen\@dimentemp \newskip\@parskipsave \newif\if@comma \newif\if@newline \newif\if@notvoidtoks % \newif\if@toksequal \newif\if@toksnotequal \newif\if@beenhere \newif\if@somethingbefore \newif\if@continueloop \newif\if@cmfonts \newif\if@closing % Initialize defs and registers. \clubpenalty=10000 \widowpenalty=10000 \textheight 724pt \topmargin -72pt% Gets rid of default 1 inch margin at top of page. \topskip 0pt \headheight 0pt \headsep 0pt \footskip 43pt \textwidth 432pt \@countverticalposition 0 \@countclasssep 24 % This is the vertical distance in POINTS from % the border to SECRET or CONFIDENTIAL. % @countclassep is not used on postscript % headers. Postscript headers are able to % mimic preprinted SECRET and CONFIDENTIAL paper. \@toksempty={} \@toksblank={ } \@toksnewline={\\} \@dimenpagetwoheader 180pt \@dimenfirstpageleftheader 220pt \@dimenmemopaperhcorr 0pt \@dimenmemopapervcorr 0pt \@dimenspaceaftercolon 12pt \def\@blank{ }% \def\@tt{tt}\def\@rm{rm}% \def\@texfonts{texfonts}% \def\@lafonts{lafonts}\def\@postscript{postscript}% \def\@memopaper{memopaper}% \def\@standard{standard}% \def\@short{short}\def\@long{long}\def\@underscore{underscore}% \def\@ibmpc{ibmpc}\def\@vaxvms{vaxvms}\def\@vaxunix{vaxunix}% \def\@sununix{sununix}\def\@apollo{apollo}% % ****************** % *** USER INPUT *** % ****************** % % \DEF \TO, \FROM, \THRU, \CY, \ATTACHMENTS, \REFERENCE, \ENCLOSURES, % \DISTRIBUTION % \def\to#1{\@toksinput{to}{#1}}% \def\from#1{\@toksinput{from}{#1}}% \def\cy#1{\@toksinput{cy}{#1}}% \def\thru#1{\@toksinput{thru}{#1}}% \def\attachments#1{\@toksinput{attachments}{#1}}% \def\reference#1{\@toksinput{reference}{#1}}% \def\distribution#1{\@toksinput{distribution}{#1}}% \def\enc#1{\@toksinput{enc}{#1}}% % % DEF \HEADERFONTS, \BODYFONTS, \SUBJECT, \SYMBOL, \SERIALNUMBER, % \MAILSTOP, \TELEPHONE, etc % Remove leading and trailing blanks from \typeface, \headerfonts, \bodyfonts. % \def\typeface#1{\def\@typeface{#1}% \@unspaceleft\@typeface \@unspaceright\@typeface}% \def\headerfonts#1{\def\@headerfonts{#1}% \@unspaceleft\@headerfonts \@unspaceright\@headerfonts}% \def\bodyfonts#1{\def\@bodyfonts{#1}% \@unspaceleft\@bodyfonts \@unspaceright\@bodyfonts \ifx\@bodyfonts\@postscript \@psdefclasslabel\fi}% \def\subject#1{% \def\@subject{#1}% \@upperunspaceleft\@subject}% \def\symbol#1{\def\@symbol{#1}\@unspaceright\@symbol}% \def\serialnumber#1{\def\@serialnumber{#1}\@unspaceleft\@serialnumber \@unspaceright\@serialnumber}% \def\mailstop#1{\def\@mailstop{#1}\@unspaceright\@mailstop}% \def\telephone#1{\def\@telephone{#1}\@unspaceleft\@telephone}% \def\date#1{\def\@date{#1}\@unspaceright\@date}% \def\shortmemostyle{\def\@shortmemostyle{}}% \def\signer#1{% \def\@signer{#1}% \@unspaceright\@signer \@upperunspaceleft\@signer}% \def\originator#1{% \def\@originator{#1}% \@unspaceright\@originator \@upperunspaceleft\@originator}% \def\typist#1{% \def\@typist{#1}% \ifx\@typist\@empty \else \ifx\@typist\@blank \def\@typist{}% \else \def\@typist{\lowercase{\ignorespaces#1}}% \fi \fi }% \def\memopaperhcorr#1{\@ifnoinfo{#1}% {\@dimenmemopaperhcorr=0pt}{\@dimenmemopaperhcorr=#1}}% \def\memopapervcorr#1{\@ifnoinfo{#1}% {\@dimenmemopapervcorr=0pt}{\@dimenmemopapervcorr=#1}}% \def\signature#1{\def\@signature{#1}}% \def\approval#1{\def\@approval{#1}}% \def\cypagebreak{\def\@cypagebreak{}}% \def\attachmentspagebreak{\def\@attachmentspagebreak{}}% \def\encpagebreak{\def\@encpagebreak{}}% \def\distributionpagebreak{\def\@distributionpagebreak{}}% \def\encas{\def\@encas{}}% \def\attachmentas{\def\@attachmentas{}}% \def\attachmentsas{\def\@attachmentsas{}}% \def\encpagebreak{\def\@encpagebreak{}}% % \DEF \CLASS % Read in argument from \classlabel and create \@classlabel % If argument is not {s} or {c} or {u}, stop the job. \def\classlabel#1{% \begingroup \def\@unspacedclasslabel{#1}% \@unspaceleft{\@unspacedclasslabel}% \@unspaceright{\@unspacedclasslabel}% \@ifundefined{@classlabel}% {}{\gdef\@todieornottodie{\@errortwoclasses\@exit}}% % \@secret, \@confidential, and \@unclassified need different \defs % so that they dont compare equal \def\@secret{s}\def\@confidential{c}\def\@unclassified{u}% \ifx \@unspacedclasslabel \@secret% If #1 is s \gdef\@classlabel{SECRET}% \typeout{^^JThis memo will be marked SECRET.^^J}% \else \ifx \@unspacedclasslabel \@confidential% If #1 is c \gdef\@classlabel{CONFIDENTIAL}% \typeout{^^JThis memo will be marked CONFIDENTIAL.^^J}% \else \ifx \@unspacedclasslabel \@unclassified% If #1 is u \gdef\@classlabel{UNCLASSIFIED}% \typeout{^^JThis memo will be marked UNCLASSIFIED.^^J}% \else \ifx \@unspacedclasslabel \@empty% If #1 is empty \gdef\@classlabel{}% \else % #1 was not a c, s, or u so it's time to die \gdef\@todieornottodie{% \gdef\@classlabel{#1}% \@errorclassargument \@exit }% \fi \fi \fi \fi \endgroup \@todieornottodie }% % \DEF \@TOKSINPUT % Called by something like \@toksinput{from}{Steve Sydoriak} % \@toksinput collects input from \to, \from, \attachments, etc: any % input that can have mutiple lines of input of the form \xx{a\\b\\c,etc} % or \xx{a}\xx{b}, etc. \@toksinput leaves \@toksxx={a\\b\\c}, for example, % and \@countxx=3. Some user errors, such as \xx{\\a} or \xx{a\\}\xx{b} % are corrected. \def\@toksinput#1#2{% \def\@toksname{\csname @toks#1\endcsname}% \def\@countname{\csname @count#1\endcsname}% \@toksnotequal\@toksname\@toksempty \if@toksnotequal % @toksname isn't empty, ie, @toksinput has been called before, so add a \\ \@addtotoks\@toksname\\ \fi \@beenherefalse \@toksremaining={#2}% \loop % Pull off @toksbeforenewline, the tokens before @toksremaining's first \\ \@tonewlinepull\@toksremaining \@somethingbeforefalse \@toksnotequal\@toksbeforenewline\@toksempty \if@toksnotequal \@toksnotequal\@toksbeforenewline\@toksblank \if@toksnotequal % There is something non-blank before the \\ in @toksbeforenewline. \@somethingbeforetrue \fi \fi \if@somethingbefore \if@beenhere % Been thru the loop before, so add a \\ to @toksname. \@addtotoks\@toksname\\ \else % This is the first time thru the loop. \@beenheretrue \fi % When \@toksbeforenewline is not empty and not blank, add it to \@toksname. \@addtokstotoks\@toksname\@toksbeforenewline \@continuelooptrue \advance\@countname by 1 \else \@toksnotequal\@toksafternewline\@toksempty% Blank or empty before \\ \if@toksnotequal \@toksnotequal\@toksafternewline\@toksnewline% Something after the \\ \if@toksnotequal \@continuelooptrue% \@toksafter.ne.{}and.ne.{\\} \else \@continueloopfalse% \@toksafter={\\} \fi \else \@continueloopfalse% \@toksafter={ } \fi \fi \if@continueloop % Set @toksremaining to @toksafternewline, and repeat the loop. \@toksremaining=\@toksafternewline \repeat }% % *************************** % *** OPENING AND CLOSING *** % *************************** % \DEF \OPENING % \opening prints the preprinted header info and/or the people*s names, etc., % down to but not including the SUBJECT: line. \def\opening {% \@checkinput \@choosefonts \@initializefontvariables \@initializeheadervariables \@makepagetwoheader \@printfirstpageheader \@beginmemo }% % \DEF \CLOSING % The closing prints all the info after the body of the memo % \def\closing {% \normalsize \@closingtrue \@endmemo \@clearclosing \@printsignature \@printoriginatorline \@printapproval \@printenc \@printattachments \@printdistribution \@printcy }% % ************************ % *** CHECK USER INPUT *** % ************************ % DEF \@CHECKINPUT % Check for missing input items and set default input values. % \def\@checkinput{% \ifnum\@countto=0\@errorundeclared{\to}% \@errorshowexample{\to}{George Benford, EX-4, MS M775}\fi \ifnum\@countfrom=0\@errorundeclared{\from}% \@errorshowexample{\from}{Ann Turner, AB-DO, MS D405}\fi \@ifemptyorundefined{@symbol}% {\def\@symbol{}\@errorundeclared{\symbol}% \@errorshowexample{\symbol}{C-2}}{}% \@ifemptyorundefined{@subject}% {\def\@subject{}\@errorundeclared{\subject}% \@errorshowexample{\subject}{Building Schedule}}{}% \@ifemptyorundefined{@originator}% {\def\@originator{}\@errorundeclared{\originator}% \@errorshowexample{\originator}{BJD}}{}% \@ifundefined{@signer}% {\def\@signer{}}{}% \@ifundefined{@typist}% {\def\@typist{}}{}% \@ifemptyorundefined{@mailstop}% {\def\@mailstop{}\@errorundeclared{\mailstop}% \@errorshowexample{\mailstop}{B233}}{}% \@ifemptyorundefined{@telephone}% {\def\@telephone{}\@errorundeclared{\telephone}% \@errorshowexample{\telephone}{7-1102}}{}% \@ifemptyorundefined{@date}{\def\@date{\today}}{}% \@ifundefined{@serialnumber}% {\def\@serialnumber{}}{}% \def\@symbolserialnumber{% \@symbol \ifx\@symbol\@empty \else \ifx\@serialnumber\@empty \else -\relax \fi\fi \@serialnumber\ }% \@ifemptyorundefined{@typeface}{\def\@typeface{tt}}{}% \@ifemptyorundefined{@headerfonts}{\def\@headerfonts{texfonts}}{}% \@ifemptyorundefined{@bodyfonts}{\def\@bodyfonts{texfonts}}{}% }% % ******************** % *** CHOOSE FONTS *** % ******************** % \DEF \@CHOOSEFONTS % This \def chooses the fonts for the memo % \def\@choosefonts {% \@amorcm \@getpostscriptnames \@chooseheaderfonts \@choosebodyfonts }% % DEF \@AMORCM figures out whether am or cm fonts have been loaded. % If the amfonts (amr10,etc) were defined by lfonts.tex, \@cmfontsfalse. % If the cmfonts (cmr10,etc) were defined by lfonts.tex, \@cmfontstrue. % \def\@amorcm{{% \edef\a{\csname cmr10\endcsname}% \edef\b{\csname\fontname\tenrm\endcsname}% \ifx\a\b \global\@cmfontstrue \else \global\@cmfontsfalse \fi }}% % \DEF \@GETPOSTSCRIPTNAMES % This \def defines PostScript font names. % \def\@getpostscriptnames{% \def\@cmhelv{psmhlv }% \def\@cmhelvb{psmhlvb }% \def\@cmtimer{psmtimr }% \def\@cmtimei{psmtimi }% \def\@cmtimeb{psmtimb }% \def\@cmcour{psmcou }% \def\@cmcouro{psmcouo }% \def\@cmcourb{psmcoub }% }% % \DEF \@CHOOSEHEADERFONTS % This \def chooses the header fonts % \def\@chooseheaderfonts {% \ifx\@headerfonts\@memopaper% Memopaper, so don't need to load any fonts. \else\ifx\@headerfonts\@lafonts \font\@booksix=book6% \font\@memotwentyeight=memo28% \font\@latwentyeight=la28% \font\@spectwelve=spec12% \else\ifx\@headerfonts\@texfonts \if@cmfonts \font\@booksix=cmr6% \font\@latwentyeight=cmbx10 scaled\magstep5% \font\@memotwentyeight=cmbx10 scaled\magstep5% \font\@spectwelve=cmss10 scaled\magstep1% \else \font\@booksix=amr6% \font\@latwentyeight=ambx10 scaled\magstep5% \font\@memotwentyeight=ambx10 scaled \magstep5% \font\@spectwelve=amss10 scaled\magstep1% \fi \else\ifx\@headerfonts\@postscript \font\@booksix=\@cmhelv at 6pt% \font\@latwentyeight=\@cmhelvb at 29pt% \font\@memotwentyeight=\@cmhelvb at 28pt% \font\@spectwelve=\@cmhelv at 10.5pt% \else% illegal header \def\@todieornottodie{\@errorillegalheaderfont\@exit}% \fi\fi\fi\fi \@todieornottodie }% % \DEF \@CHOOSEBODYFONTS % This \def chooses the fonts for the body of the memo % \def\@choosebodyfonts {% \ifx\@typeface\@tt \else\ifx\@typeface\@rm \else \def\@todieornottodie{\@errorillegaltypeface\@exit}% \fi\fi \@todieornottodie \ifx\@bodyfonts\@texfonts \if@cmfonts \font\@classfont=cmss10 scaled \magstep5% \else \font\@classfont=amssmc40 \fi \else\ifx\@bodyfonts\@postscript \ifcase \@ptsize\relax % 10pt option \font\tenrm = \@cmtimer at 10pt % roman \font\tentt = \@cmcour at 10pt % typewriter \ifx\@typeface\@tt \font\tenit = \@cmcouro at 10pt % tt italic \font\tenbf = \@cmcourb at 10pt % tt bold \else\ifx\@typeface\@rm \font\tenit = \@cmtimei at 10pt % roman italic \font\tenbf = \@cmtimeb at 10pt % roman bold \fi \fi \or % 11pt option \font\elvrm = \@cmtimer at 11pt % roman \font\elvtt = \@cmcour at 11pt % typewriter \ifx\@typeface\@tt \font\elvit = \@cmcouro at 11pt % tt italic \font\elvbf = \@cmcourb at 11pt % tt bold \else\ifx\@typeface\@rm \font\elvit = \@cmtimei at 11pt % roman italic \font\elvbf = \@cmtimeb at 11pt % roman bold \fi \fi \or % 12pt option \font\twlrm = \@cmtimer at 12pt % roman \font\twltt = \@cmcour at 12pt % typewriter \ifx\@typeface\@tt \font\twlit = \@cmcouro at 12pt % tt italic \font\twlbf = \@cmcourb at 12pt % tt bold \else\ifx\@typeface\@rm \font\twlit = \@cmtimei at 12pt % roman italic \font\twlbf = \@cmtimeb at 12pt % roman bold \fi \fi \fi \else \def\@todieornottodie{\@errorillegalbodyfont\@exit}% \fi\fi \@todieornottodie }% % ******************************************************** % *** INITIALIZE FONT AND TYPEFACE DEPENDENT VARIABLES *** % ******************************************************** % \DEF \@INITIALIZEFONTVARIABLES % This def will initialize fonts dependent variables such as parskip and % will put kerns in the variable that need it, such as the header words % and special symbols such as bullets % \def\@initializefontvariables {% \raggedbottom \@kernheaderwords \@initializetypefacedependencies \edef\normalsize {% \ifx \@currsize \normalsize \ifx \@typeface \@tt \tt \else \ifx \@typeface \@rm \rm \fi \fi \else \@normalsize \fi }% % \pem is redefined so that \em will return to \tt or \rm depending % on @typeface \def\pem{% \ifdim \fontdimen \@ne \font >\z@ \csname\@typeface\endcsname \else \it \fi }% }% % \DEF \@KERNHEADERWORDS % % Define and kern @losalamos @lanl @memorandum @lanm for tex fonts. \def\@kernheaderwords{% \ifx \@headerfonts \@texfonts \def\@lanl{% \raise 1pt\hbox{% \def\@kern{\kern -.5pt}% L\@kern o\@kern s\ \kern -2.5pt A\@kern l\@kern a\@kern m\@kern o\@kern s\ \kern -2pt N\@kern a\@kern t\@kern i\@kern o\@kern n\@kern a\@kern l\ \kern -3pt L\@kern a\@kern b\@kern o\@kern r\@kern a\@kern t\@kern o\@kern r\@kern y% }% }% \def\@lanm{% \def\@kern{\kern -.5pt}% L\@kern o\@kern s\kern -2.5pt\ A\@kern l\@kern a\@kern m\@kern o\@kern s\kern -1pt ,\kern -4.5pt\ New\kern -3pt\ Mexico\kern -3pt \ 87545% }% \def\@losalamos{% Los Alamos% }% \def\@memorandum{% memorandum% }% \else \ifx \@headerfonts \@lafonts % % Are the old or new Metafoundry fonts being used? % If the width of the L in spec12 is 5.5407, then the new fonts are in use. \@spectwelve {\setbox0=\hbox{L}\global\@dimentemp=\wd0}% \ifdim \@dimentemp=5.33684pt % Define and kern @losalamos @lanl @memorandum @lanm for new la fonts. \def\@lanl{% L\kern -.4pt o\kern .35pt s\ \kern -.8pt A\kern .6pt l\kern .1pt a\kern .6pt m\kern .1pt o\kern .35pt s% \def\@kern{\kern .22pt}% \ N\@kern a\@kern t\@kern i\@kern o\@kern n\@kern a\kern .47pt l\ \kern -.2pt \def\@kern{\kern .03pt}% L\@kern a\kern .43pt b\@kern o\@kern r\@kern a\@kern t\kern -.22pt o\@kern r\@kern y}% \def\@lanm{% L\kern -.4pt o\kern .35pt s\ \kern -.8pt \def\@kern{\kern .35pt}% A\kern .6pt l\kern .1pt a\kern .6pt m\kern .1pt o\kern .35pt s,% \ \kern -1.5pt N\kern -.2pt ew\ \kern -.1pt \def\@kern{\kern .15pt}% M\kern -.05pt e\@kern x\@kern i\@kern c\@kern o\ \kern -.1pt 8\kern -.65pt 7\kern -.9pt 54\kern -.7pt 5}% \def\@losalamos{% \kern -1.2pt L\kern 0pt o\kern -.75pt s\ \kern -6.7pt A\kern .25pt l\kern 1.25pt a\kern -.85pt m\kern -.65pt o\kern -.75pt s}% \def\@memorandum{memorandum}% % Define and kern @losalamos @lanl @memorandum @lanm for old la fonts. \else \def\@lanl{% \raise .3pt\hbox{% L\kern -.6pt os\ \kern -1.3pt \def\@kern{\kern .11pt}% A\@kern l\@kern a\@kern m\@kern o\@kern s\ National\ % \def\@kern{\kern -.2pt}% L\@kern a\@kern b\@kern o\@kern r\@kern a\@kern t\@kern o\@kern r\@kern y% }% }% \def\@lanm{% L\kern -.6pt os\ \kern -1.3pt \def\@kern{\kern .11pt}% A\@kern l\@kern a\@kern m\@kern o\@kern s% \kern -.5pt,\ \kern -1.44pt New \kern -.5pt \def\@kern{\kern -.2pt}% M\@kern e\@kern x\@kern i\@kern c\@kern o\ \kern -.5pt 8\@kern 7\@kern 5\@kern 4\@kern 5% }% \def\@losalamos{% \def\@kern{\kern -.9pt}% \kern -1.2pt L\kern -.65pt o\@kern s\kern 5pt A\kern -.4pt l\kern .3pt a\@kern m\@kern o\@kern s% }% \def\@memorandum{% \def\@kern{\kern -.25pt}% m\@kern e\@kern m\@kern o\@kern r\kern -.5pt a\@kern n\@kern d\@kern u\@kern m% }% \fi \else \ifx \@headerfonts \@postscript % Define and kern @losalamos @lanl @memorandum @lanm for postscript fonts. \def\@lanl{% \raise .5pt\hbox{% Los\kern -2pt\ Alamos\kern -1.5pt\ National\kern -2pt \ Laboratory% }% }% \def\@lanm{% \def\@kern{\kern .57pt}% Los\kern -2pt\ Alamos\kern -1pt,\kern -3.5pt\ N\@kern e\@kern w\kern -2pt\ M\@kern e\@kern x\@kern i\@kern c\@kern o\kern -2pt\ 87545% }% % % @LOSALAMOS is a PostScript macro that prints Los Alamos in hollow letters. % ##1 and ##2 are \@dimenmemopaperhcorr and \@dimenmemopapervcorr % \def\@PSlosalamos##1##2{% \@psdeflosalamos \special{ps:: ##1 ##2 @LOSALAMOS1 @LOSALAMOS2 @LOSALAMOS3}}% \def\@memorandum{% \def\@kern{\kern -2pt}% m\@kern e\@kern m\@kern o\@kern r\kern 1pt \@kern a\@kern n\@kern d\@kern u\@kern m% }% \fi \fi \fi }% % \DEF \@INITIALIZETYPEFACEDEPENDENCIES % % Variables that are dependent on typeface are initialized here. \def\@initializetypefacedependencies{% % For typewriter typeface. \ifx \@typeface \@tt % Hyphenation. \rightskip=0pt plus 3.6em% As this increases, there will be less hyphens. \@rightskip=\rightskip \hyphenchar\nintt=\defaulthyphenchar \hyphenchar\tentt=\defaulthyphenchar \hyphenchar\elvtt=\defaulthyphenchar \hyphenchar\twltt=\defaulthyphenchar % Bullets. \ifx \@bodyfonts \@texfonts \def\@bullet{\leavevmode\raise-.22ex\hbox to 0pt{+\hss}o}% \else \ifx \@bodyfonts \@postscript \def\@bullet{\leavevmode\raise-.19ex\hbox to 0pt{+\hss}o}% \fi \fi \fi \@initializelists }% % \DEF \@INITIALIZELISTS % % Initialize \list variables. % Most of the initialization for Roman typeface and some initialization % for typewriter typeface comes directly from letter.doc \def\@initializelists{% \ifx \@typeface \@tt \parskip=\baselineskip % **************************************** % * 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 be a no-op. % \@dimenwdtt is the width of a character in the typewriter font. % \@dimenwdtt=5.25pt for 1em=10pt % \@dimenwdtt=6.3pt for 1em=12pt {\setbox0=\hbox{\tt x}\global\@dimenwdtt=\wd0}% \leftmargini 4\@dimenwdtt \leftmarginii 4\@dimenwdtt \leftmarginiii 4\@dimenwdtt \leftmarginiv 4\@dimenwdtt \leftmarginv 4\@dimenwdtt \leftmarginvi 4\@dimenwdtt \leftmargin\leftmargini \labelwidth\leftmargini\advance\labelwidth-\labelsep \labelsep=\@dimenwdtt \parsep=\baselineskip \topsep 0pt \itemsep 0pt \descriptionmargin=5\@dimenwdtt \@dimentemp=\@dimenwdtt % For Roman typeface \else\ifx \@typeface \@rm \parskip=.7em % Bullets. \def\@bullet{$\bullet$}% % See comments for *** LISTS *** above under \ifx \@typeface \@tt \leftmargini 2.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 5pt \topsep .4em \parsep .4em \itemsep .2em \descriptionmargin=3em \@dimentemp=5pt \fi \fi \listparindent=0pt \let\@listi\relax \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep}% \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \ifx \@typeface \@rm \topsep .2em \itemsep \topsep \fi}% \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}% % 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. % \@dimenversemargin=3\@dimentemp \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -\@dimenversemargin \listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin \@dimenversemargin}\item[]}% \let\endverse\endlist % QUOTATION % Fills lines % Indents paragraph % \def\quotation{\list{}{% \rightmargin\leftmargin}\item[]}% \let\endquotation=\endlist % The following is from letter.doc's OTHER ENVIRONMENTS. \tabcolsep \@dimentemp % Half the space between columns in a % tabular environment. \tabbingsep \labelsep % Space used by the \' command. (See LaTeX manual.) % 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. \def\labelenumi{\arabic{enumi}.}% \def\theenumi{\arabic{enumi}}% \def\labelenumii{\alph{enumii}.}% \def\theenumii{\alph{enumii}}% \def\p@enumii{\theenumi}% \def\labelenumiii{(\arabic{enumiii})}% \def\theenumiii{\roman{enumiii}}% \def\p@enumiii{\theenumi(\theenumii)}% \def\labelenumiv{(\alph{enumiv})}% \def\theenumiv{\Alph{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}% From OPM manual \def\labelitemii{-}% \def\labelitemiii{*}% \def\labelitemiv{+}% % 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 \it ##1}% \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}}% \let\enddescription\endlist }% % \DEF \@INITIALIZEHEADERVARIABLES % Variables that define the positioning and style of headers are set here. % \def\@initializeheadervariables{% \let\@texttop=\relax % Defines the headers on page one. \def\ps@firstpage{\let\@mkboth\@gobbletwo \def\@oddhead{\@makeclassheader\@printclasspage}% \def\@oddfoot{}}% % Defines the headers on page two and on. \def\ps@pagetwo{\let\@mkboth\@gobbletwo \def\@oddhead{% \@printpagetwoheader\@printpagenum\@printclasspage}% \def\@oddfoot{}}% % \thispagestyle{firstpage}% \pagestyle{pagetwo}% % % Initialize first page variables. \ifnum\@countthru=0 \@countleftcolon=77 \@countrightcolon=406 \else \@countleftcolon=80 \@countrightcolon=404 \fi \ifnum\@countthru=0 \@dimenspacetosubject=209pt \else \@dimenspacetosubject=233pt \fi \@advcountbydimen\@countverticalposition\@dimenmemopapervcorr \advance\@dimenspacetosubject by \@dimenmemopapervcorr \@advcountbydimen\@countleftcolon\@dimenmemopaperhcorr \@advcountbydimen\@countrightcolon\@dimenmemopaperhcorr \@countleftheader=\@countleftcolon \@countrightheader=\@countrightcolon \@advcountbydimen\@countleftheader\@dimenspaceaftercolon \@advcountbydimen\@countrightheader\@dimenspaceaftercolon \oddsidemargin=\@countleftcolon pt \advance \oddsidemargin by -1in \advance \oddsidemargin by \@dimenspaceaftercolon \evensidemargin=\oddsidemargin }% % ******************************************* % *** CLASSIFICATION AND PAGE TWO HEADERS *** % ******************************************* % \DEF \@MAKECLASSHEADER % Make the box that contains the classification header and footer. % \def\@makeclassheader {% \@ifundefined{@classlabel}{\gdef\@classlabel{}}{}% \ifx\@bodyfonts\@postscript \@makePSclassheader \else \ifx \@classlabel \@empty \global\setbox\@boxclasspage=\hbox{\hbox to 0pt{\hss\hss}}% \else \global\setbox\@boxclasspage=\hbox{\hbox to 0pt{\hss \begin{picture}(0,0)(\@countleftheader,0)% {% \@classfont \@counttemp=-\@countclasssep \put (0,\@counttemp)% {\makebox(0,0)[tl]{\hbox to 8.5in{\hfil\@classlabel\hfil}}}% \advance\@counttemp by 795 % 795pt is 11in \put (0,-\@counttemp)% {\makebox(0,0)[bl]{\hbox to 8.5in{\hfil\@classlabel\hfil}}}% % \put (0,0){\line(1,-2){40}}% debug corner % \put (0,0){\line(1,-1){40}}% debug corner % \put (0,0){\line(1,-3){40}}% debug corner }% \end{picture}% \hss}}% \fi \fi }% % \DEF \@PSDEFLOSALAMOS % This is the PostScript definition for @LOSALAMOS, which prints % 'Los Alamos' when \headerfonts{postscript} is used. % The PostScript code is read in little chunks to avoid the problem % of preview crashing on the Suns with bigger chunks. Arbortext has % fixed the problem, but many older version of preview are still % being used and distributed. % \gdef\@psdeflosalamos{% \special{ps::[local]% /@LOSALAMOS1 { % Print a hollow Los Alamos % /VirginState save def /Helvetica-Bold findfont [ 27.7 0 0 29 0 0 ] makefont setfont % /YC exch neg def % y correction for label placement. /XC exch def % x correction } def }% \special{ps::[local]% /@LOSALAMOS2 { /MV {moveto} def /SO {false charpath stroke} def .5 setlinewidth XC 87.8 add YC 721 add translate % } def }% \special{ps::[local]% /@LOSALAMOS3 { 0 0 MV (L) SO 15.9 0 MV (o) SO 31.8 0 MV (s) SO 51.3 0 MV (A) SO 70.2 0 MV (l) SO 77 0 MV (a) SO 91.4 0 MV (m) SO 115 0 MV (o) SO 130.9 0 MV (s) SO % VirginState restore } def }% }% % \DEF \@PSDEFCLASSLABEL % This is the PostScript definition for @CLASSOVERLAY, which prints % the classification label when \bodyfonts{postscript} is used. % The PostScript code is read in little chunks to avoid the problem % of preview crashing on the Suns with bigger chunks. Arbortext has % fixed the problem, but many older version of preview are still % being used and distributed. % \def\@psdefclasslabel{% \specialbop{ps::[global]% /@CLASSOVERLAY1 { % % Print the classification label at the top and bottom of the page. % /VirginState save def dup (SECRET) eq {/Dist 36 def /Space 3.5 def /X 272 def } % Dist is the distance % between the edge of the paper and the classification label. {/Dist 24 def /Space 3 def /X 242 def } % Space is the space added % between letters in the label. X is the distance to the left % side of the label. ifelse /Label exch def } def }% \specialbop{ps::[global]% /@CLASSOVERLAY2 { /Print { gsave Space 0 Label ashow grestore } def /DoubPrint { Print StrikeWidth 0 rmoveto Print } def % /Scale .415888 def % The letters are scaled by this amount. /StrikeWidth 1.5 def % The letters are each printed twice % with this distance between the letters. Double % striking is used to make the vertical portions of % the letters wider. } def }% \specialbop{ps::[global]% /@CLASSOVERLAY3 { /Helvetica-Bold findfont [29 Scale mul 0 0 29 0 0] makefont setfont % X 770 Dist sub moveto DoubPrint % X Dist moveto DoubPrint VirginState restore } def }% }% % \DEF \@MAKEPSCLASSHEADER % Define the PostScript macro that prints the classification header % and footer. % \def\@makePSclassheader{% % % \@PSclasslabel invokes the PostScript command @CLASSOVERLAY % @CLASSOVERLAY prints the classification label in PostScript % in such a way as to simulate the labels on preprinted SECRET % or CONFIDENTIAL paper. % \gdef\@PSclasslabel##1{% \special{ps:: ##1 @CLASSOVERLAY1 @CLASSOVERLAY2 @CLASSOVERLAY3}}% }% % \DEF \@MAKEPAGETWOHEADER % The header for pages 2-N are put in a box because the height of % \@boxpagetwoheader is used to calulate \@dimentoppagetwo % which is used to calculate \topskip and \headsep and \textheight % \def\@makepagetwoheader {% \@pullpagetwoheader{\@toksto}% \savebox{\@boxpagetwoheader}% {% \begin{minipage}[b]{\textwidth}% % The 72pt puts the page number line at one inch down the page. % The -\ht\strutbox compensates for the distance between the top % of the minipage and the bottom of the top line. \normalsize \rule{0pt}{72pt}\rule{0pt}{-\ht\strutbox}% \rule keeps it in horiz mode \parbox[t]{\@dimenpagetwoheader}% {% \the\@toksheaderone\copy\strutbox \@notvoidtoks\@toksheadertwo \if@notvoidtoks \newline \the\@toksheadertwo\copy\strutbox \fi \ifx \@serialnumber \@empty \else \ifhmode \newline \fi \@symbolserialnumber\copy\strutbox \fi }% \copy\strutbox\hfill \makebox[\@dimenpagetwoheader][r]{\hfil\@date}% \end{minipage}% }% % Now make the distance from the bottom of the page two % header to the first line of the page equal to four lines. \@dimentoppagetwo=\ht\@boxpagetwoheader \advance\@dimentoppagetwo by 4\baselineskip \advance\@dimentoppagetwo by -\dp\strutbox }% % \DEF \@PRINTCLASSPAGE % The \def prints the classification label at the top and bottom of a page. % \def\@printclasspage{% \ifx\@bodyfonts\@postscript \ifx \@classlabel \@empty \else \@PSclasslabel{(\@classlabel)}% \fi \vbox to 0in{}\hss \else \vbox to 0in{\hbox to 0pt{\usebox{\@boxclasspage}\hss}\vss}\hss \fi }% % \DEF \@PRINTPAGETWOHEADER % The \def prints the header on page two and following pages. % \def\@printpagetwoheader{% \vbox to 0in{\hbox to 0pt{\usebox{\@boxpagetwoheader}\hss}\vss}% }% % \DEF \@PRINTPAGENUM % The \def prints the page number on page two and following pages. % \def\@printpagenum{% \vbox to 0pt{\hbox to 0pt{% \begin{minipage}[b]{\textwidth}% \normalsize \rule{0pt}{72pt}\rule{0pt}{-\ht\strutbox}% \rule keeps it in horiz mode \hfil{- \thepage\ -}\hfil \end{minipage}% \hss}\vss}% }% % \DEF \@PULLPAGETWOHEADER % This \def pulls the page two header from \to input. % Only the information before the first comma on each line is used. % \def\@pullpagetwoheader#1{\begingroup \@gettoksheader{#1}% \global\@toksheaderone=\expandafter{\the\@toksbeforecomma}% \if@newline \@toksremaining=\@toksafternewline \@gettoksheader{\@toksremaining}% \global\@toksheadertwo=\expandafter{\the\@toksbeforecomma}% \fi \endgroup }% % \DEF \@GETTOKSHEADER % Get the header toks % \def\@gettoksheader#1{\@tonewlinepull{#1}% \if@newline\@tocommapull{\@toksbeforenewline}% \else \@tocommapull{#1}\fi}% % ******************************************************* % *** BEGIN AND END MEMO, SHORT OR NORMAL MEMO STYLE. *** % ******************************************************* % \DEF \@BEGINMEMO % If the short memo style was used, the variables are set for it. % \def\@beginmemo{% \@ifundefined{@shortmemostyle}% {% \ifnum \@countreference = 0 \@dimentemp=2\baselineskip \advance\@dimentemp by -\parskip {\parskip=\@dimentemp \leavevmode \par \leavevmode}% \fi \par }% {% Shortmemostyle. \ifx \@typeface \@tt \topsep=\baselineskip \baselineskip=2\baselineskip \parindent=5\@dimenwdtt \leftmargini=7\@dimenwdtt \else \ifx \@typeface \@rm \@parskipsave=\parskip \advance\baselineskip by \parskip \parindent=2.5em \leftmargini=3.5em \topsep=1.2em \parsep=.6em \itemsep=.6em \fi \fi \parskip=0pt \leftmargin=\leftmargini \par\leavevmode \par }% }% % \DEF \@CLEARCLOSING % If there are any unprinted floats, call \clearpage. % This has the unfortunate effect of putting the closing information % on a page by itself. % \def\@clearclosing{% \edef\@tempa{\@toplist\@botlist\@deferlist}% \ifx\@tempa\@empty\else\clearpage\fi }% % \DEF \@ENDMEMO % If the short memo style is wanted, the variables for it are un-set. % \def\@endmemo{% \@ifundefined{@shortmemostyle}% {}% {% \par \ifnum \thepage > 1 \@errorshortmemo \fi \parindent=0em \ifx \@typeface \@tt \baselineskip=.5\baselineskip \parskip=\baselineskip \else \ifx \@typeface \@rm \parskip=\@parskipsave \advance\baselineskip by -\parskip \fi \fi \leavevmode \par }% \topsep=0pt \itemsep=0pt \parsep=0pt }% % ********************* % *** PRINT OPENING *** % ********************* % \DEF \@PRINTFIRSTPAGEHEADER % Prints TO: FROM: etc. headers, (but not the info from the colon on). % \def\@printfirstpageheader {% \normalsize \begin {picture}(0,0)(\@countleftheader,\@countverticalposition)% \ifx\@headerfonts\@memopaper \else \@printmemopaper \fi \@printfirstpageheaderinfo \end{picture}% \normalsize \@printsubject \@printreference }% % \DEF \@PRINTMEMOPAPER % The preprinted part is printed. % \def\@printmemopaper {% % \put (0,0){\line(1,-2){40}}% debug corner % \put (0,0){\line(1,-1){40}}% debug corner % \put (0,0){\line(2,-1){40}}% debug corner \ifx\@headerfonts\@postscript \@dimentemp=\@dimenmemopaperhcorr \ifnum\@countthru=0\else\advance\@dimentemp by 3pt\fi \@counttemp=\@dimentemp \divide\@counttemp by 65536 \@counttemptwo=\@dimenmemopapervcorr \divide\@counttemptwo by 65536 \@PSlosalamos{\the\@counttemp }{\the\@counttemptwo }% \else \@latwentyeight \put (\@countleftheader,-71){\@losalamos}% \fi \@spectwelve \put (\@countleftheader,-88){\@lanl}% \put (\@countleftheader,-98){\@lanm}% \@memotwentyeight \put (524,-98){\makebox(0,0)[br]{\@memorandum}}% \put (0,-105){\line(1,0){614}}% % % Now print the TO, FROM, THRU, etc. % First print the part of the heading that is the same for thru or thruless % \@booksix \put (\@countleftcolon,-138){\makebox(0,0)[br]{TO:}}% \put (\@countrightcolon,-138){\makebox(0,0)[br]{DATE:}}% \put (\@countrightcolon,-162){\makebox(0,0)[br]{MAIL STOP/TELEPHONE:}}% % % If there is no \thru, print the thruless-style header info, % else print thru header. % \ifnum\@countthru=0 {% % \put (0,0){\line(1,-3){60}}% debug corner % \put (0,0){\line(1,-1){40}}% debug corner % \put (0,0){\line(3,-1){60}}% debug corner \put (\@countleftcolon,-162){\makebox(0,0)[br]{FROM:}}% \put (\@countleftcolon,-186){\makebox(0,0)[br]{SYMBOL:}}% \put (\@countleftcolon,-210){\makebox(0,0)[br]{SUBJECT:}}% }% \else {% % \put (0,0){\line(1,-4){60}}% debug corner % \put (0,0){\line(1,-1){40}}% debug corner % \put (0,0){\line(4,-1){60}}% debug corner \put (\@countleftcolon,-162){\makebox(0,0)[br]{THRU:}}% \put (\@countleftcolon,-210){\makebox(0,0)[br]{FROM:}}% \put (\@countleftcolon,-234){\makebox(0,0)[br]{SUBJECT:}}% \put (\@countrightcolon,-210){\makebox(0,0)[br]{SYMBOL:}}% }% \fi }% % \DEF \@PRINTFIRSTPAGEHEADERINFO % Print the user input for the heading, first for what is the % same for thru or thruless % \def\@printfirstpageheaderinfo {% \normalsize \sbox{\@boxtemp}% {\begin{minipage}[t]{\@dimenfirstpageleftheader}% \raggedright \baselineskip=12pt \the\@toksto \end{minipage}}% \put(\@countleftheader,-138){\usebox{\@boxtemp}}% \ifdim\dp\@boxtemp > 18pt \@erroroverfull{TO}{2}% \fi \put (\@countrightheader,-138){\@date{}}% \put (\@countrightheader,-162){% \@mailstop \ifx\@mailstop\@empty \else \ifx\@telephone\@empty \else /\relax \fi \fi \@telephone}% % % If there is no \thru, print the thruless user input. % \ifnum\@countthru=0 \sbox{\@boxtemp}% {\begin{minipage}[t]{\@dimenfirstpageleftheader}% \raggedright \baselineskip=12pt \the\@toksfrom \end{minipage}}% \put (\@countleftheader,-162){\usebox{\@boxtemp}}% \ifdim\dp\@boxtemp > 18pt \@erroroverfull{FROM}{2}% \fi \put (\@countleftheader,-186){\@symbolserialnumber}% % % Else print thru style input. % \else \sbox{\@boxtemp}% {\begin{minipage}[t]{\@dimenfirstpageleftheader}% \raggedright \baselineskip=12pt\the\@toksthru \end{minipage}}% \put (\@countleftheader,-162){\usebox{\@boxtemp}}% \ifdim\dp\@boxtemp > 42pt \@erroroverfull{THRU}{4}% \fi \sbox{\@boxtemp}% {\begin{minipage}[t]{\@dimenfirstpageleftheader}% \raggedright \baselineskip=12pt\the\@toksfrom \end{minipage}}% \put (\@countleftheader,-210){\usebox{\@boxtemp}}% \ifdim\dp\@boxtemp > 18pt \@erroroverfull{FROM}{2}% \fi \put (\@countrightheader,-210){\@symbolserialnumber}% \fi }% % \DEF \@PRINTSUBJECT % Print the subject line % \def\@printsubject{% \newline \vrule height\the\@dimenspacetosubject width0pt \@subject \ifnum\@countreference=0 \else \leavevmode \par \fi }% % \DEF \@PRINTREFERENCE % This prints the reference. % \def\@printreference {% \ifnum\@countreference=0 \else \ifnum \@countreference=1 REFERENCE:\relax \else REFERENCES:\relax \fi \par\vspace{-\baselineskip}% Begin list on same line as REFERENCE: % % No number for one item lists % \begin{list}{\ifnum \@countreference=1\else\arabic{@countlist}.\fi}% {% \topsep=0pt \itemsep=0pt \parsep=0pt \ifnum \@countreference=1 \settowidth\leftmargin{REFERENCE\@: }% \else \settowidth\leftmargin{REFERENCES\@: }% \fi \@setnumdefaults\@countreference }% \@printnumberedlist{\@toksreference}% \end{list}% \fi }% % ********************** % *** PRINT CLOSING. *** % ********************** % \DEF \@PRINTSIGNATURE % Leave space for the signature and print the signature line. % \def\@printsignature {% \par \@ifemptyorundefined{@signature}{}% {% {\parskip=0pt\par\ }% The \ makes the vspace* be in paragraph mode \vspace*{2\baselineskip}\newline \@signature }% }% % \DEF \@PRINTORIGINATORLINE % Print the signer, originator, and typist. % \def\@printoriginatorline {% \@ifemptyorundefined{@signature}{\nopagebreak}{}% \par \ifx\@signer\@empty \else \@signer \ifx\@originator\@empty \ifx\@typist\@empty \else :\relax \fi \else -\relax \fi \fi \ifx\@originator\@empty \else \@originator \ifx\@typist\@empty \else :\relax \fi \fi \ifx\@typist\@empty \else \@typist \fi }% % \DEF \@PRINTAPPROVAL % Print the approval line. % \def\@printapproval {% \@ifemptyorundefined{@approval}{}% {% {% \samepage \settowidth\@lengthlabel{APPROVED BY:}% Length from left side of \addtolength\@lengthlabel\labelsep% APPROVED to left end of rule. % \@lengthrule=\textwidth \addtolength\@lengthrule{-\@lengthlabel}% The rule stops 30pt inside \addtolength\@lengthrule{-30pt}% the right margin. % \settowidth\@lengthdate{date}% Add space to the left \addtolength\@lengthdate{60pt}% and right of "date". % \@lengthname=\@lengthrule% Length of the parbox which \addtolength\@lengthname{-\@lengthdate}% holds approvers name. % {\parskip=0pt\par\ }% The \ makes the vspace* be in paragraph mode \vspace*{2\baselineskip}\newline \relax APPROVED BY:\hskip\labelsep \rule{\@lengthrule}{0.4pt}% \copy\strutbox {\offinterlineskip\newline}% \hspace*{\@lengthlabel}\parbox[t]{\@lengthname}% {\@approval\ \copy\strutbox}% \makebox[\@lengthdate][c]{date}% % debug: In \tt extra 1pt between here and the % next line when @approval is multiple line \par }% }% }% % \DEF \@PRINTENCLOSURES % Now print the enclosures % \def\@printenc {% \@ifundefined{@encas}{}{% \ifnum\@countenc=0 \par Enc.\ a/s% \else \@erroras\enc\encas{Enc. a/s}% \fi}% \ifnum\@countenc=0 \else \par \@ifundefined{@encpagebreak}{}{\pagebreak}% \ifnum\@countenc=1 Enclosure:\relax \else Enc.\relax \fi \nopagebreak \par\vspace{-\baselineskip}% % % No number for one item lists % \@countmemolist=\@countenc \begin{list}{\ifnum \@countenc=1\else\arabic{@countlist}.\fi}% {% \ifnum\@countenc=1 \settowidth\leftmargin{Enclosure: }% \else \settowidth\leftmargin{Enc.\ }% \fi \@setnumdefaults\@countenc }% \@printnumberedlist{\@toksenc}% \end{list}% \fi }% % \DEF \@PRINTATTACHMENTS % Now print the attachments % \def\@printattachments {% \@ifundefined{@attachmentas}% % No \attachmentas {\@ifundefined{@attachmentsas}{}% % \@attachmentsas and not \@attachmentas {\ifnum\@countattachments=0 \par Attachments a/s% \else \@erroras\attachments\attachmentsas{Attachments a/s}\fi}}% % Yes, \attachmentas {\@ifundefined{@attachmentsas}% % \@attachmentas and not \@attachmentsas {\ifnum\@countattachments=0 \par Attachment a/s% \else\@erroras\attachments\attachmentas{Attachment a/s}\fi}% % \@attachmentas and \@attachmentsas {\par Attachments a/s% \@erroras\attachmentas\attachmentsas{Attachment a/s}}}% \ifnum\@countattachments=0 \else \par \@ifundefined{@attachmentspagebreak}{}{\pagebreak}% \ifnum\@countattachments=1 Attachment:\relax \else Attachments:\relax \fi % % No number for one item lists % \@countmemolist=\@countattachments \begin{list}{\ifnum \@countattachments=1\else\arabic{@countlist}.\fi}% {% \leftmargin=0pt \@setnumdefaults\@countattachments }% \@printnumberedlist{\@toksattachments}% \end{list}% \fi }% % \DEF \@PRINTDISTRIBUTION % Now the distribution list % \def\@printdistribution {% \ifnum\@countdistribution=0 \else \par \@ifundefined{@distributionpagebreak}{}{\pagebreak}% {\offinterlineskip Distribution:\copy\strutbox}% \@countmemolist=\@countdistribution \begin{list}{}% {% \parskip=0pt \labelwidth=0pt \labelsep=0pt \leftmargin=0pt }% \item\the\@toksdistribution \end{list}% \fi }% % \DEF \@PRINTCY % Print the Cy list if \@countcy > 0 % \def\@printcy {% \ifnum\@countcy=0 \else \pagebreak[0]% \par \@ifundefined{@cypagebreak}{}{\pagebreak}% \begin{list}{Cy:\hfill}% {% \settowidth\labelwidth{Cy: }% \leftmargin=\labelwidth \labelsep=0pt }% \item\the\@tokscy \end{list}% \fi }% % ********************************** % *** NUMBERED LISTS FOR CLOSING *** % ********************************** % \DEF \@SETNUMDEFAULTS % Set defaults for numbered lists. #1 is the number of % items in the list. % \def\@setnumdefaults#1{% \ifnum #1=1 \labelwidth=0pt% No number for one item list \labelsep=0pt \else \usecounter{@countlist}% \ifnum #1<10 \settowidth\labelwidth{8.}% Between 2 and 9 items. \else \settowidth\labelwidth{88.}% 10 or more. \fi\fi \addtolength\leftmargin\labelwidth \addtolength\leftmargin\labelsep \parskip=0pt }% % \DEF \@PRINTNUMBEREDLIST % This prints a numbered list as is used to print reference, % attachments, and enclosures. % \def\@printnumberedlist#1% {% \@toksremaining=#1% \loop \@tonewlinepull{\@toksremaining}% \@toksnotequal\@toksbeforenewline\@toksempty \if@toksnotequal \@toksitem=\@toksbeforenewline \@toksremaining=\@toksafternewline \ifx #1\@toksreference% Make reference list uppercase \item\uppercase\expandafter{\the\@toksitem}% \else \item\the\@toksitem \fi \repeat }% % *************** % *** PARSING *** % *************** % \DEF \@TONEWLINEPULL \DEF \@TONEWLINEPULLSUBONE, etc. % Put the tokens in #1 before the first \\ into \@toksbeforenewline. % Put the tokens in #1 after the firrst \\ into \@toksafternewline. % \@newlinetrue if there was a \\ in the token #1. % \def\@tonewlinepull#1{\begingroup\let\\=\relax \expandafter\@tonewlinepullone\the#1\\\@empty \if@newline\expandafter\@tonewlinepullthree\the#1\@empty \else\fi\endgroup}% \def\@tonewlinepullone#1\\{\global\@toksbeforenewline={#1}% \futurelet\next\@tonewlinepulltwo}% \def\@tonewlinepulltwo#1\@empty{\global\@toksafternewline={#1}% \ifx\@empty\next\global\@newlinefalse \else\global\@newlinetrue\fi}% \def\@tonewlinepullthree#1\\{\global\@toksbeforenewline={#1}% \futurelet\next\@tonewlinepullfour}% \def\@tonewlinepullfour#1\@empty{\global\@toksafternewline={#1}% \ifx\@empty\next\global\@newlinefalse \else\global\@newlinetrue\fi}% % \DEF \@TOCOMMAPULL \DEF \@TOCOMMAPULLSUB, etc. % Put the tokens in #1 before the first "," into \@toksbeforecomma. % \@commatrue if there was a "," in the token #1. % \def\@tocommapull#1{\expandafter\@tocommapullone\the#1,\@empty}% \def\@tocommapullone#1,{\@toksbeforecomma={#1}% \futurelet\next\@tocommapulltwo}% \def\@tocommapulltwo#1\@empty{\ifx\@empty\next \@commafalse \else \@commatrue \fi}% % \DEF \@UNSPACELEFT % Gets rid of a space at the beginning of a macro definition. % \def\word{ xx } % \@unspaceleft\word % results in \def\word{xx } % \def\@unspaceleft#1{{% \def\@macroname{#1}% \ifx #1\@empty \else \ifx #1\@blank \global\expandafter\def\@macroname{}% \else % If #1 is not blank or empty, call \@unspaceleftone \expandafter\@unspaceleftone#1\relax\relax\@empty \fi \fi }}% % The use of #1 as a parameter in @unspaceleftone ignores a leading blank. \def\@unspaceleftone#1#2\relax{% \global\expandafter\def\@macroname{#1#2}% \@unspacelefttwo}% \def\@unspacelefttwo#1\@empty{}% % \DEF \@UPPERUNSPACELEFT % Gets rid of a space at the beginning of a macro definition and returns % uppercase. % \def\word{ xx } % \@upperunspaceleft\word % results in \def\word{\uppercase{xx }} % \def\@upperunspaceleft#1{{% \def\@macroname{#1}% \ifx #1\@empty \else \ifx #1\@blank \global\expandafter\def\@macroname{}% \else % If #1 is not blank or empty, call \@upperunspaceleftone \expandafter\@upperunspaceleftone#1\relax\relax\@empty \fi \fi }}% % #1 as a parameter in @upperunspaceleftone ignores a leading blank. \def\@upperunspaceleftone#1#2\relax{% \global\expandafter\def\@macroname{\uppercase{#1#2}}% \@unspacelefttwo}% %\def\@unspacelefttwo#1\@empty{}% % \DEF \@UNSPACERIGHT % Gets rid of a space at the end of a macro definition. % \def\word{ xx } % \@unspaceright\word % results in \def\word{ xx} % \def\@unspaceright#1{{% \def\@macroname{#1}% % Save the original definition of #1. \edef\@temp{#1}% % \@unspacerightone will find the first \relax if #1 ends in a blank. % Otherwise it will find the second \relax and set \next to \@empty. \expandafter\@unspacerightone#1\relax{} \relax\@empty }}% \def\@unspacerightone#1 \relax{% \global\expandafter\edef\@macroname{#1}% \futurelet\next\@unspacerighttwo}% \def\@unspacerighttwo#1\@empty{% \ifx \@empty\next \global\expandafter\edef\@macroname{\@temp}% \fi }% % ************************************************************** % *** UTILITIES FOR MASSAGING TOKEN AND DIMENSION VARIABLES. *** % ************************************************************** % \DEF \@ADDTOTOKS % addtotoks takes the current token variable #1 and appends the % tokens in #2. #1 must be a token variable defined by \newtoks % For example, if \toks={abc} % \@addtotoks{\toks}{DEF\xx} will result in \toks={abcDEF\xx} % \def\@addtotoks#1#2{#1=\expandafter{\the#1#2}}% % % \DEF \@ADDTOKSTOTOKS % addtokstotoks takes the current token variable #1 and appends the % token variable #2 to it, putting the result into token variable #1. % For example, if \toksone={abc} and \tokstwo={xyz}, % \@addtokstotoks\toksone\tokstwo will result in \toksone={abcxyz} \def\@addtokstotoks#1#2{{\edef\deftemp{\the#1\the#2}% \global#1=\expandafter{\deftemp}}}% % % \DEF \@IFEMPTYORUNDEFINED % Like LaTeX's \@ifundefined, except that #2 will also be % executed if \#1 is empty or blank. % \long\def\@ifemptyorundefined#1#2#3{% \expandafter\ifx\csname#1\endcsname\relax#2 \else\expandafter\ifx\csname#1\endcsname\@empty#2 \else\expandafter\ifx\csname#1\endcsname\@blank#2 \else#3\fi\fi\fi} % % \DEF \@IFNOINFO % \@ifnoinfo{#1}{\actionone}{\actiontwo} % performs \actionone if #1 is empty or blank, % otherwise performs \actiontwo \def\@ifnoinfo#1#2#3{\def\@deftemp{#1}% \ifx\@deftemp\@empty#2\else\ifx\@deftemp\@blank#2\else#3\fi\fi} % % \DEF \@TOKSNOTEQUAL \DEF \@TOKSEQUAL % \@toksnotequal compares two token variables and returns \@toksnotequaltrue % if they are the different. Eg, \toks1={a\b c}\toks2={a\b} % \@toksnotequal{\toks1}{\toks2} returns \@toksnotequaltrue % \@toksequal works in a similar manner. % \def\@toksnotequal#1#2{\begingroup \edef\one{\the#1} \edef\two{\the#2}% \ifx\one\two\global\@toksnotequalfalse\else\global\@toksnotequaltrue\fi \endgroup}% % \def\@toksequal#1#2{\begingroup \edef\one{\the#1} \edef\two{\the#2}% % \ifx\one\two\global\@toksequaltrue\else\global\@toksequalfalse\fi\endgroup}% % % \DEF \@ADVCOUNTBYDIMEN % A count variable is advanced by a dimension variable expressed in points. % For example, if \countx=10 and \dimenx=2pt, then % \@advcountbydimen\countx\dimenx % leaves \countx=12 and \dimenx=2pt % \def\@advcountbydimen#1#2{\@counttemp=#2% \divide\@counttemp by 65536 \advance#1by \@counttemp}% % % \DEF \@NOTVOIDTOKS % \@notvoidtokstrue if there is at least one token in the variable #1. % \def\@notvoidtoks#1{\@addtotoks{#1}{\@empty}% \expandafter\@notvoidtoksone\the#1}% \def\@notvoidtoksone{\futurelet\next\@notvoidtokstwo}% \def\@notvoidtokstwo#1\@empty{\ifx \@empty\next \@notvoidtoksfalse \else \@notvoidtokstrue \fi}% % ********************** % *** ERROR MESSAGES *** % ********************** \def\@eightspaces{\space\space\space\space\space\space\space\space}% \def\@errorundeclared#1{\typeout{^^JWarning: you have not called \protect #1 before calling \protect\opening.^^J}% }% \def\@errorserialnosymbol{\typeout{^^JWarning: you have called \protect\serialnumber, but you have not called \protect\symbol.^^J}% \@errorshowexample{\symbol}{C-2}}% \def\@erroroverfull#1#2{\typeout{^^JWarning: You have printed more than #2 lines in the #1 portion ^^J \@eightspaces of the memo header.^^J}}% \def\@errorshowexample#1#2{\typeout{\@eightspaces\space For example, use^^J^^J \@eightspaces\protect #1{#2}^^J}}% \def\@errorclassargument{% \typeout{^^JFatal error: \protect\classlabel{\@classlabel} calls for an invalid classification label.^^J}% \@errorclassmessage }% \def\@errortwoclasses{% \typeout{^^JFatal error: you have called \protect\classlabel \space more than once.^^J^^J \space You are only allowed to declare one classification label per memo.^^J}% \@errorclassmessage }% \def\@errorclassmessage{% \typeout{% \space\space To print CONFIDENTIAL on the top and bottom of your memo,^^J \space use \protect\classlabel{c}^^J^^J \space To print SECRET on the top and bottom of your memo,^^J \space use \protect\classlabel{s}^^J^^J \space To print UNCLASSIFIED on the top and bottom of your memo,^^J \space use \protect\classlabel{u}^^J^^J \space If you do not want a classification label on your memo,^^J \space use \protect\classlabel{}^^J \space or do not use the \protect\classlabel\space command.^^J^^J \space Change your file, and rerun LaTeX.^^J}% }% \def\@errorillegaltypeface{% \typeout{^^JFatal error: \protect\typeface{\@typeface} calls for an invalid typeface.^^J^^J \space Use \protect\typeface{tt} or \protect\typeface{rm}^^J^^J \space Change your file, and rerun LaTeX.^^J}}% \def\@errorillegalheaderfont{\def\@fontcommand{\protect\headerfonts}% \def\@fontarg{\@headerfonts}% \typeout{^^JFatal error: \@fontcommand{\@fontarg} calls for an invalid font.^^J^^J \space Use \@fontcommand{lafonts}, \@fontcommand{texfonts},^^J \space or \@fontcommand{postscript}\space depending on what fonts^^J \space are available on your machine.^^J^^J \space Using \@fontcommand{} will give you the default fonts.^^J^^J \space Use \@fontcommand{memopaper} if you wish to print your memo^^J \space on pre-printed memo paper.^^J^^J \space Change your file, and rerun LaTeX.^^J}}% \def\@errorillegalbodyfont{\def\@fontcommand{\protect\bodyfonts}% \def\@fontarg{\@bodyfonts}% \typeout{^^JFatal error: \@fontcommand{\@fontarg} calls for an invalid font.^^J^^J \space Use \@fontcommand{texfonts} or \@fontcommand{postscript}^^J \space depending on what fonts are available on your machine.^^J^^J \space Using \@fontcommand{} will give you the default fonts.^^J^^J \space Change your file, and rerun LaTeX.^^J}}% \def\@errorshortmemo{% \typeout{^^JWarning: Use of the \protect\shortmemostyle\space macro is intended^^J \@eightspaces for use with memos of ten lines or less.^^J^^J}% }% \def\@erroras#1#2#3{% \typeout{^^JWarning: You have used both \protect#1\space and \protect#2.^^J \@eightspaces Use one or the other but not both.^^J \@eightspaces "#3" will not be printed on this memo.^^J^^J}% }% % ********************* % *** DEATH UTILITY *** % ********************* % \DEF \@TODIEORNOTTODIE % The \@todieornottodie macro is initialized here. % If a fatal error occurs, it will be equipped with a suitable % error message and an \@exit call. \@todieornottodie will then be called % once the \fi and \endgroups have all been passed. This prevents the % printing of confusing error messages. % \def\@todieornottodie{\relax}% % \DEF \@EXIT % @exit terminates the job prematurely. \def\@exit{\@fileswfalse\end{document}}% % ****************************************************************** % *** REDEFINE @ITEM TO MAKE NICE PAGEBREAKS WITH \CLOSING LISTS *** % ****************************************************************** % \DEF \@ITEM % % This is mostly copied from latex.tex. % The penalties have been altered so that lists in the \closing of % a memo will not leave clubs and widows. % The first 3 lines and the last 2 lines are kept on the same page. % \def\@item[#1]{% \if@noparitem \@donoparitem \else \if@inlabel \indent \par \fi \ifhmode \unskip\unskip \par \fi \if@newlist \if@nobreak \@nbitem \else {% \if@closing \@beginparpenalty=10000 \fi \addpenalty\@beginparpenalty }% \addvspace\@topsep \addvspace{-\parskip}\fi \else {% \if@closing \ifnum \c@@countlist = 1 \@itempenalty=10000 \fi \advance \@countmemolist by -1 \ifnum \c@@countlist = \@countmemolist \@itempenalty=10000 \fi \fi \addpenalty\@itempenalty }% \addvspace\itemsep \fi \global\@inlabeltrue \fi \everypar{\global\@minipagefalse\global\@newlistfalse \if@inlabel\global\@inlabelfalse \hskip -\parindent \box\@labels \penalty\z@ \fi \everypar{}}\global\@nobreakfalse \if@noitemarg\@noitemargfalse \if@nmbrlist\refstepcounter{\@listctr}\fi\fi \setbox\@tempboxa\hbox{\makelabel{#1}}% \global\setbox\@labels \hbox{\unhbox\@labels \hskip \itemindent \hskip -\labelwidth \hskip -\labelsep \ifdim \wd\@tempboxa >\labelwidth \box\@tempboxa \else \hbox to\labelwidth {\makelabel{#1}}\fi \hskip \labelsep}\ignorespaces }% % ************************************************************************ % *** REDEFINE LATEX.TEX'S @OUTPUTPAGE TO ALLOW ARBORTEXT'S SPECIALBOP *** % ************************************************************************ % \DEF \@OUTPUTPAGE % This redefinition of LaTeX's @outputpage is necessary to allow % \special commands to be executed before anything else on the page. % For example, the PostScript macros need to be defined before % any of the page making begins. % % These alterations were supplied by ArborText. % % Changes were also made to change the values of topskip, headsep, % and textheight after outputting page 1. % % debug Changes needed here for latex.tex <4 Aug 1988>, See laletter.sty \def\@outputpage{\begingroup\catcode`\ =10 % The following line was added to bring this def up to date with % latex.tex, <4 Aug 1988> \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii \if@specialpage \global\@specialpagefalse\@nameuse{ps@\@specialstyle}\fi \if@twoside \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot \let\@themargin\oddsidemargin \else \let\@thehead\@evenhead \let\@thefoot\@evenfoot \let\@themargin\evensidemargin \fi\fi \shipout \vbox{\normalsize \baselineskip\z@ \lineskip\z@ % The following line was added to bring this def up to date with % latex.tex, <4 Aug 1988> \let\par\@@par %% 15 Sep 87 \@specialbopemit% MEMO CHANGES \vskip \topmargin \moveright\@themargin \vbox{\setbox\@tempboxa \vbox to\headheight{\vfil \hbox to\textwidth{\@thehead}}% \dp\@tempboxa\z@ \box\@tempboxa \vskip \headsep \box\@outputbox \baselineskip\footskip \hbox to\textwidth{\@thefoot}}}\global\@colht\textheight \endgroup \ifnum\c@page=1% MEMO CHANGES % Reset \topskip for page two. % The topskip keeps the baseline of the first line of text in % the right place. If the top vbox on the page is taller than % \ht\strutbox, it will go no higher than the top of the strutbox. \global\topskip=\ht\strutbox% MEMO CHANGES \global\headsep=\@dimentoppagetwo% MEMO CHANGES \global\advance\headsep by -\topskip% MEMO CHANGES \global\advance\textheight by -\headsep% MEMO CHANGES \fi% MEMO CHANGES \stepcounter{page}% \let\firstmark\botmark}% \def\@specialbopempty{}% \let\@specialboptext=\@specialbopempty % % \DEF \SPECIALBOP % Stands for \SPECIAL-Beginning-Of-Page, supplied by Arbortext. % \def\specialbop#1{% \xdef\@specialboptext{% \@specialboptext \special{#1}% }% }% \def\@specialbopemit{% (used by the \output routine) \ifx\@specialboptext\@specialbopempty \else \@specialboptext \global\let\@specialboptext=\@specialbopempty \fi }% % *********************** % *** END OF MEMO.DOC *** % *********************** % These are the commands starting with '\' that appear in memo.sty % that are not defined in LaTeX or TeX. % % \@PSclasslabel % \@PSlosalamos % \@addtokstotoks % \@addtotoks % \@advcountbydimen % \@amorcm % \@apollo % \@approval % \@attachmentas % \@attachmentsas % \@attachmentspagebreak % \@beginmemo % \@blank % \@bodyfonts % \@booksix % \@boxclasspage % \@boxpagetwoheader % \@boxtemp % \@bullet % \@checkinput % \@choosebodyfonts % \@choosefonts % \@chooseheaderfonts % \@classfont % \@classlabel % \@clearclosing % \@cmcour % \@cmcourb % \@cmcouro % \@cmhelv % \@cmhelvb % \@cmtimeb % \@cmtimei % \@cmtimer % \@confidential % \@countattachments % \@countclasssep % \@countcy % \@countdistribution % \@countenc % \@countfrom % \@countleftcolon % \@countleftheader % \@countmemolist % \@countname % \@countreference % \@countrightcolon % \@countrightheader % \@counttemp % \@counttemptwo % \@countthru % \@countto % \@countverticalposition % \@cypagebreak % \@deftemp % \@dimenfirstpageleftheader % \@dimenmemopaperhcorr % \@dimenmemopapervcorr % \@dimenpagetwoheader % \@dimenspaceaftercolon % \@dimenspacetosubject % \@dimentemp % \@dimentoppagetwo % \@dimenversemargin % \@dimenwdtt % \@distributionpagebreak % \@eightspaces % \@encas % \@encpagebreak % \@endmemo % \@erroras % \@errorclassargument % \@errorclassmessage % \@errorillegalbodyfont % \@errorillegalheaderfont % \@errorillegaltypeface % \@erroroverfull % \@errorserialnosymbol % \@errorshortmemo % \@errorshowexample % \@errortwoclasses % \@errorundeclared % \@exit % \@fontarg % \@fontcommand % \@getpostscriptnames % \@gettoksheader % \@headerfonts % \@ibmpc % \@ifemptyorundefined % \@ifnoinfo % \@initializefontvariables % \@initializeheadervariables % \@initializelists % \@initializetypefacedependencies % \@kern % \@kernheaderwords % \@lafonts % \@lanl % \@lanm % \@latwentyeight % \@lengthdate % \@lengthlabel % \@lengthname % \@lengthrule % \@long % \@losalamos % \@macroname % \@mailstop % \@makePSclassheader % \@makeclassheader % \@makepagetwoheader % \@memopaper % \@memorandum % \@memotwentyeight % \@notvoidtoks % \@notvoidtoksone % \@notvoidtokstwo % \@originator % \@parskipsave % \@postscript % \@printapproval % \@printattachments % \@printclasspage % \@printcy % \@printdistribution % \@printenc % \@printfirstpageheader % \@printfirstpageheaderinfo % \@printmemopaper % \@printnumberedlist % \@printoriginatorline % \@printpagenum % \@printpagetwoheader % \@printreference % \@printsignature % \@printsubject % \@psdefclasslabel % \@psdeflosalamos % \@pullpagetwoheader % \@rm % \@secret % \@serialnumber % \@setnumdefaults % \@short % \@shortmemostyle % \@signature % \@signer % \@specialbopemit % \@specialbopempty % \@specialboptext % \@spectwelve % \@standard % \@subject % \@sununix % \@symbol % \@symbolserialnumber % \@telephone % \@texfonts % \@tocommapull % \@tocommapullone % \@tocommapulltwo % \@todieornottodie % \@toksafternewline % \@toksattachments % \@toksbeforecomma % \@toksbeforenewline % \@toksblank % \@tokscy % \@toksdistribution % \@toksempty % \@toksenc % \@toksfrom % \@toksheaderone % \@toksheadertwo % \@toksinput % \@toksitem % \@toksmultipleto % \@toksname % \@toksnewline % \@toksnotequal % \@toksreference % \@toksremaining % \@toksthru % \@toksto % \@tonewlinepull % \@tonewlinepullfour % \@tonewlinepullone % \@tonewlinepullthree % \@tonewlinepulltwo % \@tt % \@typeface % \@typist % \@unclassified % \@underscore % \@unspacedclasslabel % \@unspaceleft % \@unspaceleftone % \@unspacelefttwo % \@unspaceright % \@unspacerightone % \@unspacerighttwo % \@upperunspaceleft % \@upperunspaceleftone % \@vaxunix % \@vaxvms % \approval % \attachmentas % \attachments % \attachmentsas % \attachmentspagebreak % \bodyfonts % \c@@countlist % \classlabel % \closing % \cy % \cypagebreak % \deftemp % \descriptionmargin % \distribution % \distributionpagebreak % \enc % \encas % \encpagebreak % \from % \headerfonts % \if@beenhere % \if@closing % \if@cmfonts % \if@comma % \if@continueloop % \if@newline % \if@notvoidtoks % \if@somethingbefore % \if@toksnotequal % \mailstop % \memopaperhcorr % \memopapervcorr % \newblock % \next % \one % \opening % \originator % \ps@firstpage % \ps@pagetwo % \reference % \serialnumber % \shortmemostyle % \signature % \signer % \specialbop % \subject % \telephone % \thru % \two % \typeface % \typist % Here is a list of most of the locally defined macros and their line % numbers in this file. % 964 % DEF \@AMORCM figures out whether am or cm fonts have been loaded. % 906 % DEF \@CHECKINPUT % 717 % DEF \HEADERFONTS, \BODYFONTS, \SUBJECT, \SYMBOL, \SERIALNUMBER, % 2333 % \DEF \@ADDTOKSTOTOKS % 2325 % \DEF \@ADDTOTOKS % 2370 % \DEF \@ADVCOUNTBYDIMEN % 1716 % \DEF \@BEGINMEMO % 1019 % \DEF \@CHOOSEBODYFONTS % 954 % \DEF \@CHOOSEFONTS % 986 % \DEF \@CHOOSEHEADERFONTS % 1750 % \DEF \@CLEARCLOSING % 1759 % \DEF \@ENDMEMO % 2481 % \DEF \@EXIT % 973 % \DEF \@GETPOSTSCRIPTNAMES % 1704 % \DEF \@GETTOKSHEADER % 2341 % \DEF \@IFEMPTYORUNDEFINED % 2351 % \DEF \@IFNOINFO % 1078 % \DEF \@INITIALIZEFONTVARIABLES % 1435 % \DEF \@INITIALIZEHEADERVARIABLES % 1256 % \DEF \@INITIALIZELISTS % 1227 % \DEF \@INITIALIZETYPEFACEDEPENDENCIES % 2489 % \DEF \@ITEM % 1110 % \DEF \@KERNHEADERWORDS % 1482 % \DEF \@MAKECLASSHEADER % 1621 % \DEF \@MAKEPAGETWOHEADER % 1607 % \DEF \@MAKEPSCLASSHEADER % 2379 % \DEF \@NOTVOIDTOKS % 2544 % \DEF \@OUTPUTPAGE % 2013 % \DEF \@PRINTAPPROVAL % 2088 % \DEF \@PRINTATTACHMENTS % 1657 % \DEF \@PRINTCLASSPAGE % 2153 % \DEF \@PRINTCY % 2131 % \DEF \@PRINTDISTRIBUTION % 2050 % \DEF \@PRINTENCLOSURES % 1789 % \DEF \@PRINTFIRSTPAGEHEADER % 1865 % \DEF \@PRINTFIRSTPAGEHEADERINFO % 1806 % \DEF \@PRINTMEMOPAPER % 2197 % \DEF \@PRINTNUMBEREDLIST % 1987 % \DEF \@PRINTORIGINATORLINE % 1677 % \DEF \@PRINTPAGENUM % 1671 % \DEF \@PRINTPAGETWOHEADER % 1937 % \DEF \@PRINTREFERENCE % 1974 % \DEF \@PRINTSIGNATURE % 1925 % \DEF \@PRINTSUBJECT % 1557 % \DEF \@PSDEFCLASSLABEL % 1512 % \DEF \@PSDEFLOSALAMOS % 1689 % \DEF \@PULLPAGETWOHEADER % 2178 % \DEF \@SETNUMDEFAULTS % 2242 % \DEF \@TOCOMMAPULL \DEF \@TOCOMMAPULLSUB, etc. % 2472 % \DEF \@TODIEORNOTTODIE % 807 % \DEF \@TOKSINPUT % 2358 % \DEF \@TOKSNOTEQUAL \DEF \@TOKSEQUAL % 2222 % \DEF \@TONEWLINEPULL \DEF \@TONEWLINEPULLSUBONE, etc. % 2252 % \DEF \@UNSPACELEFT % 2299 % \DEF \@UNSPACERIGHT % 2275 % \DEF \@UPPERUNSPACELEFT % 771 % \DEF \CLASS % 884 % \DEF \CLOSING % 871 % \DEF \OPENING % 2599 % \DEF \SPECIALBOP % 705 % \DEF \TO, \FROM, \THRU, \CY, \ATTACHMENTS, \REFERENCE, \ENCLOSURES, % The following list will give you a view of this file as a whole. % Included are banners from major sections of code and locally % defined macros. Line numbers are given on the left. % 18 % *** BEGINNING OF ARTICLE.DOC MACROS *** % 25 % * BIBLIOGRAPHY * % 59 % * FIGURES AND TABLES * % 150 % *** LETTER.STY MACROS *** % 190 % * FONTS * % 327 % * PAGE LAYOUT * % 393 % * LETTER COMMANDS * % 399 % * THE SRI LETTER FORMAT * % 405 % * THE GENERIC LETTER COMMANDS * % 411 % * PAGE STYLES * % 418 % * PARAGRAPHING * % 453 % * LISTS * % 461 % * OTHER ENVIRONMENTS * % 515 % * FOOTNOTES * % 547 % * MISCELLANEOUS * % 560 % * INITIALIZATION * % 580 % *** BEGINNING OF LOCALLY WRITTEN MACROS FOR LANL MEMOS. *** % 584 % *** DEFINE AND INITIALIZE REGISTERS *** % 701 % *** USER INPUT *** % 705 % \DEF \TO, \FROM, \THRU, \CY, \ATTACHMENTS, \REFERENCE, \ENCLOSURES, % 717 % DEF \HEADERFONTS, \BODYFONTS, \SUBJECT, \SYMBOL, \SERIALNUMBER, % 771 % \DEF \CLASS % 807 % \DEF \@TOKSINPUT % 868 % *** OPENING AND CLOSING *** % 871 % \DEF \OPENING % 884 % \DEF \CLOSING % 903 % *** CHECK USER INPUT *** % 906 % DEF \@CHECKINPUT % 951 % *** CHOOSE FONTS *** % 954 % \DEF \@CHOOSEFONTS % 964 % DEF \@AMORCM figures out whether am or cm fonts have been loaded. % 973 % \DEF \@GETPOSTSCRIPTNAMES % 986 % \DEF \@CHOOSEHEADERFONTS % 1019 % \DEF \@CHOOSEBODYFONTS % 1075 % *** INITIALIZE FONT AND TYPEFACE DEPENDENT VARIABLES *** % 1078 % \DEF \@INITIALIZEFONTVARIABLES % 1110 % \DEF \@KERNHEADERWORDS % 1227 % \DEF \@INITIALIZETYPEFACEDEPENDENCIES % 1256 % \DEF \@INITIALIZELISTS % 1268 % * LISTS * % 1317 % See comments for *** LISTS *** above under \ifx \@typeface \@tt % 1435 % \DEF \@INITIALIZEHEADERVARIABLES % 1479 % *** CLASSIFICATION AND PAGE TWO HEADERS *** % 1482 % \DEF \@MAKECLASSHEADER % 1512 % \DEF \@PSDEFLOSALAMOS % 1557 % \DEF \@PSDEFCLASSLABEL % 1607 % \DEF \@MAKEPSCLASSHEADER % 1621 % \DEF \@MAKEPAGETWOHEADER % 1657 % \DEF \@PRINTCLASSPAGE % 1671 % \DEF \@PRINTPAGETWOHEADER % 1677 % \DEF \@PRINTPAGENUM % 1689 % \DEF \@PULLPAGETWOHEADER % 1704 % \DEF \@GETTOKSHEADER % 1713 % *** BEGIN AND END MEMO, SHORT OR NORMAL MEMO STYLE. *** % 1716 % \DEF \@BEGINMEMO % 1750 % \DEF \@CLEARCLOSING % 1759 % \DEF \@ENDMEMO % 1786 % *** PRINT OPENING *** % 1789 % \DEF \@PRINTFIRSTPAGEHEADER % 1806 % \DEF \@PRINTMEMOPAPER % 1865 % \DEF \@PRINTFIRSTPAGEHEADERINFO % 1925 % \DEF \@PRINTSUBJECT % 1937 % \DEF \@PRINTREFERENCE % 1971 % *** PRINT CLOSING. *** % 1974 % \DEF \@PRINTSIGNATURE % 1987 % \DEF \@PRINTORIGINATORLINE % 2013 % \DEF \@PRINTAPPROVAL % 2050 % \DEF \@PRINTENCLOSURES % 2088 % \DEF \@PRINTATTACHMENTS % 2131 % \DEF \@PRINTDISTRIBUTION % 2153 % \DEF \@PRINTCY % 2175 % *** NUMBERED LISTS FOR CLOSING *** % 2178 % \DEF \@SETNUMDEFAULTS % 2197 % \DEF \@PRINTNUMBEREDLIST % 2219 % *** PARSING *** % 2222 % \DEF \@TONEWLINEPULL \DEF \@TONEWLINEPULLSUBONE, etc. % 2242 % \DEF \@TOCOMMAPULL \DEF \@TOCOMMAPULLSUB, etc. % 2252 % \DEF \@UNSPACELEFT % 2275 % \DEF \@UPPERUNSPACELEFT % 2299 % \DEF \@UNSPACERIGHT % 2323 % *** UTILITIES FOR MASSAGING TOKEN AND DIMENSION VARIABLES. *** % 2325 % \DEF \@ADDTOTOKS % 2333 % \DEF \@ADDTOKSTOTOKS % 2341 % \DEF \@IFEMPTYORUNDEFINED % 2351 % \DEF \@IFNOINFO % 2358 % \DEF \@TOKSNOTEQUAL \DEF \@TOKSEQUAL % 2370 % \DEF \@ADVCOUNTBYDIMEN % 2379 % \DEF \@NOTVOIDTOKS % 2389 % *** ERROR MESSAGES *** % 2469 % *** DEATH UTILITY *** % 2472 % \DEF \@TODIEORNOTTODIE % 2481 % \DEF \@EXIT % 2486 % *** REDEFINE @ITEM TO MAKE NICE PAGEBREAKS WITH \CLOSING LISTS *** % 2489 % \DEF \@ITEM % 2541 % *** REDEFINE LATEX.TEX'S @OUTPUTPAGE FOR ARBORTEXT'S SPECIALBOP *** % 2544 % \DEF \@OUTPUTPAGE % 2599 % \DEF \SPECIALBOP % 2616 % *** END OF MEMO.DOC ***