diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-11 23:57:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-11 23:57:41 +0000 |
commit | a2132d23d9120b9edb06ea34ccec782cfed9d575 (patch) | |
tree | 69269a723f45e874364f2942f8f2d5ad92993fd4 /Master/texmf-dist/source/latex/sf298 | |
parent | 62b41ba27b8f7ff62121e6e4b33c310b7c5a1d8f (diff) |
trunk/Master/texmf-dist/source/latex/sf298
git-svn-id: svn://tug.org/texlive/trunk@509 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/sf298')
-rw-r--r-- | Master/texmf-dist/source/latex/sf298/Makefile | 95 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/sf298/sf298.dtx | 2098 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/sf298/sf298.ins | 98 |
3 files changed, 2291 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/sf298/Makefile b/Master/texmf-dist/source/latex/sf298/Makefile new file mode 100644 index 00000000000..1c738ecc5e3 --- /dev/null +++ b/Master/texmf-dist/source/latex/sf298/Makefile @@ -0,0 +1,95 @@ +PACKAGE = sf298
+########################################################################
+## LaTeX2e Makefile
+##
+## Update the following defines for your local configuration,
+##
+CONTRIB = /usr/share/texmf/tex/latex/misc
+##
+CP = cp
+DVIPS = dvips -t letter
+GZIP = gzip
+LATEX = latex
+MAKEINDEX = makeindex
+PDFLATEX = pdflatex
+PS2PDF = ps2pdf
+RM = rm
+TAR = tar
+########################################################################
+## make [all] Generates the style (.sty) file, the doc and
+## test files (.ps) and cleans up the directory.
+## make [un]install Install or uninstall the style (.sty) file from
+## the CONTRIB area.
+## make [very]clean Clean out various auxillary files. "veryclean"
+## cleans out more stuff.
+########################################################################
+## make dvi Generate the *.dvi version of the documentation.
+## make [full]ps Generate the documentation. The "fullps" version
+## adds the change log and the cross-references.
+## make idx Generate the change log and the cross-references
+## (for fullps -- requires MAKEINDEX).
+## make sty Generate the style (.sty) file.
+## make pdf Generate the *.pdf version of the documentation.
+########################################################################
+## make test Runs test program(s).
+## make distribtion Builds a distribution (.tar.gz) file.
+########################################################################
+
+all: pdf test clean
+
+install: sty
+ $(CP) $(PACKAGE).sty $(CONTRIB)
+uninstall: ; -$(RM) -f $(CONTRIB)/$(PACKAGE).sty
+clean: ; -$(RM) -f *.dvi *.log *.aux *.lof *.lot *.lom *.toc
+ -$(RM) -f *.idx *.ind *.glo *.gls *.ilg *.out *~
+veryclean: clean
+ -$(RM) -f *.sty *.cls *.ps *.pdf *.gz *pk ltxdoc.cfg
+
+dvi: $(PACKAGE).dvi
+fullps: dvi idx ps
+idx: $(PACKAGE).ind $(PACKAGE).gls
+ $(LATEX) $(PACKAGE).dtx
+ $(LATEX) $(PACKAGE).dtx
+ps: $(PACKAGE).ps
+sty: $(PACKAGE).sty
+pdf: fullps
+ $(PS2PDF) $(PACKAGE).ps > $(PACKAGE).pdf
+
+test: $(PACKAGE).sty
+ $(LATEX) sample298.tex
+ $(LATEX) sample298.tex
+ $(DVIPS) -o sample298.ps sample298.dvi
+
+distribution: ; mkdir $(PACKAGE)
+ $(CP) -p Makefile $(PACKAGE).pdf $(PACKAGE)
+ $(CP) -p $(PACKAGE).dtx $(PACKAGE).ins $(PACKAGE)
+ $(TAR) -cvf $(PACKAGE).tar ./$(PACKAGE)
+ $(RM) -rf $(PACKAGE)
+ $(GZIP) -9 $(PACKAGE).tar
+
+
+$(PACKAGE).aux: $(PACKAGE).dtx $(PACKAGE).sty
+ $(LATEX) $(PACKAGE).dtx
+ $(LATEX) $(PACKAGE).dtx
+
+$(PACKAGE).dvi: $(PACKAGE).dtx $(PACKAGE).sty $(PACKAGE).aux
+ $(LATEX) $(PACKAGE).dtx
+ $(LATEX) $(PACKAGE).dtx
+
+$(PACKAGE).glo: $(PACKAGE).dtx $(PACKAGE).sty
+ $(LATEX) $(PACKAGE).dtx
+
+$(PACKAGE).gls: $(PACKAGE).glo
+ -$(MAKEINDEX) -s gglo.ist -o $(PACKAGE).gls $(PACKAGE).glo
+
+$(PACKAGE).idx: $(PACKAGE).dtx $(PACKAGE).sty
+ $(LATEX) $(PACKAGE).dtx
+
+$(PACKAGE).ind: $(PACKAGE).idx
+ -$(MAKEINDEX) -s gind.ist $(PACKAGE).idx
+
+$(PACKAGE).ps: $(PACKAGE).dvi
+ $(DVIPS) -o $(PACKAGE).ps $(PACKAGE).dvi
+
+$(PACKAGE).sty: $(PACKAGE).dtx $(PACKAGE).ins
+ $(LATEX) $(PACKAGE).ins
diff --git a/Master/texmf-dist/source/latex/sf298/sf298.dtx b/Master/texmf-dist/source/latex/sf298/sf298.dtx new file mode 100644 index 00000000000..71a6939d26b --- /dev/null +++ b/Master/texmf-dist/source/latex/sf298/sf298.dtx @@ -0,0 +1,2098 @@ +% \iffalse +% Fill-in and print the Standard Form 298. +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% This is file `sf298.dtx', the documentation file for the `sf298' +% package. +% +% Copyright (C) 2000,2004 Steven Douglas Cochran. +% +% The sf298 package may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.2 +% of this license or (at your option) any later version. The latest +% version of this license is in: +% http://www.latex-project.org/lppl.txt +% and version 1.2 or later is part of all distributions of LaTeX +% version 1999/12/01 or later. +% +% The subfig package is distributed in the hope that it will be +% useful, but `as is', WITHOUT WARRANTY OF ANY KIND, either expressed +% or implied, including, but not limited to, the implied warranties of +% MERCHANTABILITY and FITNESS FOR A PARTICULAR PURPOSE. See the LaTeX +% Project Public License for more details. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% @LaTeX-style-file{ +% Author = "Steven Douglas Cochran", +% Version = "1.2", +% Date = "2004/12/22", +% Time = "10:33:25", +% Filename = "sf298.sty", +% Address = "Digital Mapping Laboratory, School of Computer Science +% Carnegie-Mellon University, 5000 Forbes Avenue +% Pittsburgh, PA 15213-3891, USA", +% Telephone = "+1 412.268.5654", +% FAX = "+1 412.268.5576", +% Email = "cochran@ieee.org", +% CodeTable = "ISO/ASCII", +% Keywords = "LaTeX, standard forms, sf298, report documentation", +% Supported = "yes", +% Abstract = "LaTeX package for generating a completed standard +% form 298 (Rev.\ 8--98) as prescribed by ANSI +% Std.\ Z39.18 for report documentation, for instance, +% as part of a document delivered on a U.S. Government +% contract. +% } +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{sf298.dtx} +\documentclass[letterpaper]{ltxdoc} +\usepackage[noconfig]{sf298} +\usepackage{afterpage} +\advance\textheight2\baselineskip +\setlength\hfuzz{26pt} +%</driver> +% +%<*ltxdoc> +\AtBeginDocument{ + \EnableCrossrefs + \RecordChanges + \CodelineIndex} +\AtEndDocument{ + \PrintChanges + \PrintIndex} +\begin{document} + \DocInput{sf298.dtx} +\end{document} +%</ltxdoc> +% +% \fi +% +% \newcommand*{\Lopt}[1]{\textsf{#1}} +% \newcommand*{\Lfile}[1]{\texttt{#1}} +% \newcommand*{\Lpack}[1]{\textsf{#1}} +% +% \changes{v1.0}{11 Jan 2000}{Initial revision.} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \DoNotIndex{\ ,\(,\),\@car,\@date,\@empty,\@gobble,\@ifnextchar} +% \DoNotIndex{\@ifundefined,\@nil,\@tempa,\@tempboxa,\@tempskipa} +% \DoNotIndex{\@viiipt,\@vpt,\@vipt,\@xipt,\@xivpt,\@warning,\@xpt,\\} +% \DoNotIndex{\2,\AtEndDocument,\addtocounter,\advance,\arabic} +% \DoNotIndex{\baselineskip,\baselinestretch,\begin,\bf,\c@page} +% \DoNotIndex{\cleardoublepage,\csname,\date,\day,\DeclareFixedFont} +% \DoNotIndex{\def,\documentclass,\documentpackage,\edef,\else,\end} +% \DoNotIndex{\endcsname,\evensidemargin,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fi,\font,\fontdimen,\footnote,\framebox,\global,\hbox} +% \DoNotIndex{\headheight,\headsep,\hrule,\hskip,\hss,\if,\if@twoside} +% \DoNotIndex{\ifdim,\IfFileExists,\ifodd,\ifx,\InputIfFileExists,\LARGE} +% \DoNotIndex{\large,\leftskip,\let,\line,\lineskip,\linethickness} +% \DoNotIndex{\linewidth,\makeatletter,\makeatother,\makebox,\maketitle} +% \DoNotIndex{\month,\NeedsTeXFormat,\newcommand,\newcounter,\newif} +% \DoNotIndex{\newpage,\noindent,\normalbaselineskip,\null,\number} +% \DoNotIndex{\oddsidemargin,\pagenumbering,\pagestyle,\par,\parbox,\phantom} +% \DoNotIndex{\ProvidesPackage,\put,\r@TotPages,\raggedright,\relax} +% \DoNotIndex{\renewcommand,\rightskip,\rule,\section,\setcounter} +% \DoNotIndex{\setbox,\setlength,\shortstack,\space,\spaceskip,\string} +% \DoNotIndex{\tableofcontents,\textheight,\textwidth,\thispagestyle} +% \DoNotIndex{\topmargin,\tt,\typeout,\unitlength,\usepackage,\value} +% \DoNotIndex{\vbox,\vfil,\voffset,\vskip,\vss,\wd,\xspaceskip,\year} +% +% \newcommand{\eg}{{\it e.g.\/}} +% \newcommand{\ie}{{\it i.e.\/}} +% +% \def\filename{sf298.dtx} +% \def\fileversion{1.2} +% \def\filedate{2004/12/22} +% \def\docdate {2004/12/22} +% \makeatletter +% \def\drawform{\sf@drawform} +% \def\@oddfoot{% +% \rm +% \hfil +% \@ifundefined{r@fig:form}% +% {thepage}% +% {\@tempcnta\pageref{fig:form} +% \ifnum \c@page=\@tempcnta \else +% \thepage +% \fi}% +% \hfil} +% \let\@evenfoot\@oddfoot +% \makeatother +% +% \CheckSum{1197} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \title{The \Lpack{sf298} Package\footnote{This paper documents +% the \Lpack{sf298} package v\fileversion, last revised \filedate.}} +% \author{Steven Douglas Cochran\\[5pt] +% Digital Mapping Laboratory, School of Computer Science \\ +% Carnegie-Mellon University, 5000 Forbes Avenue \\ +% Pittsburgh, PA 15213--3891, USA\\[5pt] +% \texttt{sdc+@cs.cmu.edu}} +% \date{\docdate} +% \maketitle +% \vspace{-20pt} +% \begin{abstract} +% \noindent +% This article documents the \LaTeX\ package for generating a completed +% standard form 298 (Rev.\ 8--98) as prescribed by ANSI Std.\ Z39.18 for +% report documentation, for instance, as part of a document delivered on +% a U.S. Government contract. +% +%\end{abstract} +% +% \setcounter{tocdepth}{2} +% \tableofcontents +% +% \section{Introduction} +% \begin{figure} +% \ReportDate{} +% \DistributionStatement{} +% \ReportClassification{} +% \AbstractClassification{} +% \PageClassification{} +% \AbstractLimitation{} +% \NumberPages{} +% \Abstract{\hfill Figure~\ref{fig:form}: Blank Special Form 298 +% (Report Documentation Page).\hfill\null} +% \refstepcounter{figure} +% \label{fig:form} +% \vbox to \textheight{% +% \vspace{-78pt}% +% \hbox to \textwidth{% +% \hspace{-130pt}% +% \drawform +% \hss}% +% \vss} +% \end{figure} +% +% The \Lpack{sf298} package provides for creating a filled-in copy of +% the standard form 298 (Rev.\ 8--98), ``Report Documentation Page'' +% (shown in Figure~\ref{fig:form}). This form is used in announcing and +% cataloging reports submitted as deliverables on contracts with the +% U.S. Government. It is important that the information on the sf298 +% page be consistent with the rest of the report, particularly the cover +% and title page. Instructions for filling in each block of the form +% are given below. The macro \cmd{\MakeRptDocPage} causes the page to be +% printed. If the \Lopt{twoside} option is specified in the +% documentclass, then it is printed as a separate page with a blank +% back. +% +% If you are changing the base font families for your paper (\eg, you +% load the \Lpack{times} package to use the PostScript fonts) and you +% want the fonts used on the |sf298| to change also, then you must +% change the font families before loading the \Lpack{sf298} package (see +% section~\ref{sec:configfont}). +% +% The package takes two sets of options: The \Lopt{config} option (default), +% causes it to check for a configuration file, while \Lopt{noconfig} disables +% this check (see section~\ref{sec:configfile}); The +% \Lopt{nofloatlongboxes} option (default) causes the package to generate +% the fixed standard form, while the \Lopt{floatlongboxes} option causes +% boxes 12--15 to distribute their vertical spacing in order to handle +% special cases such as a very long supplementary note in box 13. +% +% A sample report is given in section~\ref{sec:sample} that shows one +% approach to using the \Lpack{sf298} package. +% +% \section{The individual fields} +% \changes{v1.2}{22 Dec 2004}{Added note about the \Lopt{floatlongboxes} +% option.} +% +% There are nineteen fields, three with multiple sub-fields, on the +% sf298. The following macros, each having a single argument, define +% the data to be included in each field. Usually only a few fields will +% apply to a given report. Table~\ref{tab:attributes} notes which +% fields are required and which have default values. It also gives an +% approximate number of lines and characters per line that will fit into +% each block (for the Computer Modern Roman font family, PostScript Times +% Roman or other fonts will differ). The best approach to insure that +% the form is properly filled-in is to preview the page and adjust any +% fields that appear to have a problem. +% +% A few fields allow a partial extra line along the top of the box. The +% last two columns of Table~\ref{tab:attributes} shows the offset needed +% to add such an extra line. To use this extra space, you must already +% have used up the maximum number of (regular) lines for this field and +% you must begin the argument with an \cmd{\hspace} of the size of the +% indicated {\bf Skip}. The last {\bf Chars.} column gives the approximate +% amount of extra characters that you can add. +% +% \begin{table} +% \null\vspace{-.1in} +% \def\n{\hfill{\bf ---}\hfill\null} +% \def\d#1#2{\smash{\lower#1\hbox{#2}}} +% \def\p{\phantom{0}} +% \def\s#1{{\footnotesize (#1)}} +% \def\S#1{% +% \ifnum#1<10 +% {\footnotesize \phantom{0}(#1)}% +% \else +% \s{#1}% +% \fi} +% \def\z#1{\hbox to 0pt{#1\hss}\p\p\p} +% \doublerulesep.5pt +% \arrayrulewidth.5pt +% \caption{Field Attributes and Approximate Maximum Size.} +% \label{tab:attributes} +% \vspace{10pt} +% \DeleteShortVerb{\|} +% \hbox to 1.1\textwidth{% +% \hss +% \begin{tabular}{rlcccccc} \hline\hline +% \multicolumn{1}{c}{\rule{0pt}{14pt}\bf Field} +% & \multicolumn{1}{c}{\d{1ex}{\bf Macro Name}} +% & \multicolumn{1}{c}{\d{1ex}{\bf Required}} +% & \multicolumn{1}{l}{\bf Default} +% & \multicolumn{1}{c}{\bf Max} +% & \multicolumn{1}{c}{{\bf Chars.}\d{-2.5pt}{\s{7}}} +% & \multicolumn{2}{c}{\d{-2pt}{{\bf Extra Space}\d{-2.5pt}{\s{9}}}} +% \\ \cline{7-8} +% \multicolumn{1}{c}{\rule[-7pt]{0pt}{7pt}\bf Number} +% & & & \multicolumn{1}{l}{{\bf Value}\d{-2.5pt}{\s{1}}} +% & \multicolumn{1}{c}{\bf Lines} +% & \multicolumn{1}{c}{\bf per Line} +% & \multicolumn{1}{c}{\d{2pt}{{\bf Skip}\d{-2.5pt}{\s{8}}}} +% & \multicolumn{1}{c}{\d{2pt}{{\bf Chars.}\d{-2.5pt}{\s{7}}}} +% \\ \hline\rule{0pt}{14pt} +% 1\z{} & \cmd{\ReportDate} & Yes &\s{2}& \p1 & \p31 & \n & \n \\ +% 2\z{} & \cmd{\ReportType} & Yes & \n & \p1 & \p46 & \n & \n \\ +% 3\z{} & \cmd{\DatesCovered} & Yes & \n & \p1 & \p39 & \n & \n \\ +% 4\z{} & \cmd{\Title} & Yes & \n & \p7 & \p72 & 35mm & \p48 \\ +% 5\z{a} & \cmd{\ContractNumber} & \n & \n & \p1 & \p46 & \n & \n \\ +% 5\z{b} & \cmd{\GrantNumber} & \n & \n & \p1 & \p46 & \n & \n \\ +% 5\z{c} & \cmd{\ProgramElementNumber} & \n & \n & \p1 & \p46 & \n & \n \\ +% 5\z{d} & \cmd{\ProjectNumber} & \n & \n & \p1 & \p46 & \n & \n \\ +% 5\z{e} & \cmd{\TaskNumber} & \n & \n & \p1 & \p46 & \n & \n \\ +% 5\z{f} & \cmd{\WorkUnitNumber} & \n & \n & \p1 & \p46 & \n & \n \\ +% 6\z{} & \cmd{\Author} & Yes & \n & \p7 & \p72 & 22mm & \p58 \\ +% 7\z{} & \cmd{\PerformingOrg} & Yes & \n & \p4 & \p81 & \n & \n \\ +% 8\z{} & \cmd{\POReportNumber} & \n & \n & \p4 & \p39 & 18mm & \p26 \\ +% 9\z{} & \cmd{\SponsoringAgency} & Yes & \n & \p5 & \p81 & \n & \n \\ +% 10\z{} & \cmd{\Acronym} & \n & \n & \p2 & \p30 & \n & \n \\ +% 11\z{} & \cmd{\SMReportNumber} & \n & \n & \p1 & \p39 & 23mm & \p23 \\ +% 12\z{} & \cmd{\DistributionStatement} \s{10} & \n &\s{3}& \p3 & 120 & 70mm & \p75 \\ +% 13\z{} & \cmd{\SupplementaryNotes} \s{10} & \n & \n & \p2 & 120 & 45mm & \p92 \\ +% 14\z{} & \cmd{\Abstract} \s{10} & Yes & \n & 10 & 120 & 22mm & 105 \\ +% 15\z{} & \cmd{\SubjectTerms} \s{10} & \n & \n & \p3 & 125 & 32mm & 103 \\ +% 16\z{a} & \cmd{\ReportClassification} & Yes &\s{4}& \p1 & \p\p9 & \n & \n \\ +% 16\z{b} & \cmd{\AbstractClassification} & Yes &\s{4}& \p1 & \p\p9 & \n & \n \\ +% 16\z{c} & \cmd{\PageClassification} & Yes &\s{4}& \p1 & \p\p9 & \n & \n \\ +% 17\z{} & \cmd{\AbstractLimitation} & \n &\s{5}& \p1 & \p12 & \n & \n \\ +% 18\z{} & \cmd{\NumberPages} & Yes &\s{6}& \p1 & \p\p8 & \n & \n \\ +% 19\z{a} & \cmd{\ResponsiblePerson} & \n & \n & \p1 & \p41 & \n & \n \\ \rule[-7pt]{0pt}{7pt} +% 19\z{b} & \cmd{\RPTelephone} & \n & \n & \p1 & \p41 & \n & \n \\ \hline\hline +% \multicolumn{8}{l}{\rule{0pt}{14pt}{\bf Notes:}} \\ +% \multicolumn{8}{l}{\quad\S{1} All defaults may be overridden by specifying a +% value. Custom defaults may be assigned using a} \\ +% \multicolumn{8}{l}{\quad\phantom{\S{1}} configuration file (see +% section~\ref{sec:configfile})} \\ +% \multicolumn{8}{l}{\quad\S{2} Defaults to the current date (in dd-mm-yyyy +% format).} \\ +% \multicolumn{8}{l}{\quad\S{3} Defaults to ``Approved for public release; +% distribution is unlimited''} \\ +% \multicolumn{8}{l}{\quad\S{4} Defaults to ``U'' (Unclassified)} \\ +% \multicolumn{8}{l}{\quad\S{5} Defaults to ``UU'' (Unclassified Unlimited).} \\ +% \multicolumn{8}{l}{\quad\S{6} If the \Lpack{totpages} package is present, then +% the total number of pages is calculated automatically,} \\ +% \multicolumn{8}{l}{\quad\phantom{\S{1}} otherwise, there is no default (see +% section~\ref{sec:configpage}).} \\ +% \multicolumn{8}{l}{\quad\S{7} The number of characters is approximate and for +% the Computer Modern Roman font family only.} \\ +% \multicolumn{8}{l}{\quad\S{8} Amount to ident the extra first line, +% \eg, \cmd{\Title}\{\cmd{\hspace}\{37mm\} \dots text\dots\}.} \\ +% \multicolumn{8}{l}{\quad\S{9} More text may be placed in these blocks by +% adjusting the font family or size and/or changing} \\ +% \multicolumn{8}{l}{\quad\phantom{\S{9}} the interline gap (see +% \cmd{\PerformingOrg} in sections~\ref{sec:configfile} and +% \ref{sec:sample} for an example).} \\ +% \multicolumn{8}{l}{\quad\S{10} If the \Lopt{floatlongboxes} option is set +% when loading the pacakage, than this box may hold more or} \\ +% \multicolumn{8}{l}{\quad\phantom{\S{10}} less than indicated in this table, +% however the extra space sizes are still valid.} +% \end{tabular}% +% \hskip-5mm} +% \vspace{.1in} +% \MakeShortVerb{\|} +% \end{table} +% +% For those blocks that allow more than one line (see +% Table~\ref{tab:attributes}), the text argument will automatically be +% broken to fit the box and the paragraph is usually vertically centered +% and left justified. Use can use ``|\\|'' (newline) to override the +% default linebreaking, if desired (see section~\ref{sec:configfile} for +% an example). +% +% \newpage +% \paragraph{1. REPORT DATE.} +% \DescribeMacro{\ReportDate} +% +% \noindent +% Full publication date including day, and month if available. +% Must cite at least the year and be Year 2000 compliant, \eg +% \par\null\noindent +% \begin{tabular}{llll} +% ~~ & {\tt \cmd{\ReportDate}\{30--06--1998\}} & $\rightarrow$ & 30--06--1998 \\ +% ~~ & {\tt \cmd{\ReportDate}\{xx--06--1998\}} & $\rightarrow$ & xx--06--1998 \\ +% ~~ & {\tt \cmd{\ReportDate}\{xx--xx--1998\}} & $\rightarrow$ & xx--xx--1998 +% \end{tabular} +% \par\null\noindent +% This field is required, but will default to the current date. +% +% \paragraph{2. REPORT TYPE.} +% \DescribeMacro{\ReportType} +% +% \noindent +% State the type of report, such as final, technical, interim, +% memorandum, master's thesis, progress, quarterly, research, special, +% group study, {\it etc\@.\/} This field is required. +% +% \paragraph{3. DATES COVERED.} +% \DescribeMacro{\DatesCovered} +% +% \noindent +% Indicate the time during which the work was performed and the report +% was written, \eg, +% \par\null\noindent +% \begin{tabular}{llll} +% ~~ & {\tt \cmd{\DatesCovered}\{Jun 1997--Jun 1998\}} & $\rightarrow$ & Jun 1997--Jun 1998 \\ +% ~~ & {\tt \cmd{\DatesCovered}\{1--10 Jun 1996\}} & $\rightarrow$ & 1--10 Jun 1996 \\ +% ~~ & {\tt \cmd{\DatesCovered}\{May--Nov 1998\}} & $\rightarrow$ & May--Nov 1998 \\ +% ~~ & {\tt \cmd{\DatesCovered}\{Nov 1998\}} & $\rightarrow$ & Nov 1998 +% \end{tabular} +% \par\null\noindent +% The month and year for at least one month are required. +% +% \paragraph{4. TITLE AND SUBTITLE.} +% \DescribeMacro{\Title} +% +% \noindent +% A title is taken from the part of the report that provides the most +% meaningful and complete information. When a report is prepared in +% more than one volume, repeat the primary title, add volume number, and +% include subtitle for the specific volume. On classified documents enter +% the title classification in parentheses. This field is required. +% +% \paragraph{5a. CONTRACT NUMBER.} +% \DescribeMacro{\ContractNumber} +% +% \noindent +% Enter all contract numbers as they appear in the report, \eg +% +% \par\null\noindent +% \begin{tabular}{llll} +% ~~ & {\tt \cmd{\ContractNumber}\{F33615--86--C--5169\}} & $\rightarrow$ & F33615--86--C--5169 +% \end{tabular} +% +% \paragraph{5b. GRANT NUMBER.} +% \DescribeMacro{\GrantNumber} +% +% \noindent +% Enter all grant numbers as they appear in the report, \eg +% +% \par\null\noindent +% \begin{tabular}{llll} +% ~~ & {\tt \cmd{\GrantNumber}\{AFOSR--82--1234\}} & $\rightarrow$ & AFOSR--82--1234 +% \end{tabular} +% +% \paragraph{5c. PROGRAM ELEMENT NUMBER.} +% \DescribeMacro{\ProgramElementNumber} +% +% \noindent +% Enter all program element numbers as they appear in the report, \eg +% +% \par\null\noindent +% \begin{tabular}{llll} +% ~~ & {\tt \cmd{\ProgramElementNumber}\{61101A\}} & $\rightarrow$ & 61101A +% \end{tabular} +% +% \paragraph{5d. PROJECT NUMBER.} +% \DescribeMacro{\ProjectNumber} +% +% \noindent +% Enter all project numbers as they appear in the report, \eg +% +% \par\null\noindent +% \begin{tabular}{llll} +% ~~ & {\tt \cmd{\ProjectNumber}\{1F665702D1257; ILIR\}} & $\rightarrow$ & 1F665702D1257; ILIR +% \end{tabular} +% +% \paragraph{5e. TASK NUMBER.} +% \DescribeMacro{\TaskNumber} +% +% \noindent +% Enter all task numbers as they appear in the report, \eg +% +% \par\null\noindent +% \begin{tabular}{llll} +% ~~ & {\tt \cmd{\TaskNumber}\{05; RF0330201; T4112\}} & $\rightarrow$ & 05; RF0330201; T4112 +% \end{tabular} +% +% \paragraph{5f. WORK UNIT NUMBER.} +% \DescribeMacro{\WorkUnitNumber} +% +% \noindent +% Enter all work unit numbers as they appear in the report, \eg +% +% \par\null\noindent +% \begin{tabular}{llll} +% ~~ & {\tt \cmd{\WorkUnitNumber}\{001; AFAPL30480105\}} & $\rightarrow$ & 001; AFAPL30480105 +% \end{tabular} +% +% \paragraph{6. AUTHOR(S).} +% \DescribeMacro{\Author} +% +% \noindent +% Enter name(s) of the person(s) responsible for writing the report, +% performing the research, or credited with the content of the report. +% The form of entry is the last name, first name, middle initial, and +% additional qualifiers separated by commas, \eg +% \par\null\noindent +% \begin{tabular}{llll} +% ~~ & {\tt \cmd{\Author}\{Smith, Richard, J, Jr\}} & $\rightarrow$ & Smith, Richard, J, Jr +% \end{tabular} +% \par\null\noindent +% If editor or compiler, this should follow the name(s). +% +% \paragraph[7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES).] +% {\hbox to 1in{7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES).\hss}} +% \DescribeMacro{\PerformingOrg} +% +% \noindent +% Self-explanatory. This field is one of the best examples of one that +% may be defined in a configuration file that may be used for many +% papers. For an example of how to use a configuration file, see +% section~\ref{sec:configfile}. +% +% \paragraph{8. PERFORMING ORGANIZATION REPORT NUMBER.} +% \DescribeMacro{\POReportNumber} +% +% \noindent +% Enter the unique alphanumeric report number(s) assigned by the +% performing organization, \eg +% \par\null\noindent +% \begin{tabular}{llll} +% ~~ & \multicolumn{3}{l}{\tt \cmd{\POReportNumber}\{BRL--1234; AFWL--TR--85--4017--Vol21--PT--2\}} \\ +% & \hspace{1in} & $\rightarrow$ & BRL--1234; AFWL--TR--85--4017--Vol21--PT--2 +% \end{tabular} +% +% \paragraph{9. SPONSORING/MONITORING AGENCY NAME(S) AND ADDRESS(ES).} +% \DescribeMacro{\SponsoringAgency} +% +% \noindent +% Enter the name and address of the organization(s) financially +% responsible for and monitoring the work. If it is desired to place +% two organizations in this field, then they may be split up in two +% different ways, the first is to use two 2-line addresses with (for +% example) a % ``|\\[10pt]|'' line break after the first address to show +% both % the sponsoring and the monitoring agency addresses. The second +% method is to place the addresses in a |tabular| environment. An +% example of both methods is shown below. +% \begin{verbatim} +% \SponsoringAgency{% +% U.S. Government Sponsoring Department \\ +% P.O. Box 92919, Miltown, AK 97909--6543 \\[10pt] +% U.S. Army Monitoring Agency \\ +% 909 Mission Rd., Somecity, MD 29399--9753} +% \end{verbatim} +% \begin{verbatim} +% \SponsoringAgency{% +% \begin{tabular}{@{}l@{\hspace{5mm}}l@{}} +% U.S. Government Sponsoring Dept. & U.S. Government Monitoring Agency \\ +% P.O. Box 92919 & 909 Mission Rd. \\ +% Miltown, AK 97909--6543 & Somecity, MD 29399--9753 +% \end{tabular}} +% \end{verbatim} +% These give the following, respectively: +% \par\null\noindent +% \frame{\vbox to 72.8pt{% +% \vfil +% \parbox{364.2pt}{% +% U.S. Government Sponsoring Dept. \\ +% P.O. Box 92919, Miltown, AK 97909--6543 \\[10pt] +% U.S. Government Monitoring Agency \\ +% 909 Mission Rd., Somecity, MD 29399--9753}% +% \vfil}} +% \par\null\noindent +% \frame{\vbox to 72.8pt{% +% \vfil +% \parbox{364.2pt}{% +% \begin{tabular}{@{}l@{\hspace{5mm}}l@{}} +% U.S. Government Sponsoring Dept. & U.S. Government Monitoring Agency \\ +% P.O. Box 92919 & 909 Mission Rd. \\ +% Miltown, AK 97909--6543 & Somecity, MD 29399--9753 +% \end{tabular}} +% \vfil}} +% +% \paragraph{10. SPONSOR/MONITOR'S ACRONYM(S).} +% \DescribeMacro{\Acronyms} +% +% \noindent +% Enter any acronym(s) that pertain to the Sponsor/Monitor, separated +% with commas, if available, \eg +% \par\null\noindent +% \begin{tabular}{llll} +% ~~ & {\tt \cmd{\Acronyms}\{BRL, ARDEC, NADC\}} & $\rightarrow$ & BRL, ARDEC, NADC +% \end{tabular} +% +% \paragraph{11. SPONSOR/MONITOR'S REPORT NUMBER(S).} +% \DescribeMacro{\SMReportNumber} +% +% \noindent +% Enter the report number(s) as assigned by the sponsoring/monitoring +% agency, if available, \eg +% \par\null\noindent +% \begin{tabular}{llll} +% ~~ & {\tt \cmd{\SMReportNumber}\{BRL-TR--829\}} & $\rightarrow$ & BRL-TR--829 +% \end{tabular} +% +% \paragraph{12. DISTRIBUTION/AVAILABILITY STATEMENT.}\hskip-3mm% +% \footnote{The \Lopt{floatlongboxes} option may shrink or enlarge this +% box vertically as it equalizes the vertical space for boxes 12--15.} +% \DescribeMacro{\DistributionStatement} +% \changes{v1.2}{22 Dec 2004}{Added note about the \Lopt{floatlongboxes} +% option.} +% +% \noindent +% Use agency-mandated availability statements to indicated the public +% availability or distribution limitations of the report. If additional +% limitations/restrictions or special markings are indicated follow +% agency authorization procedures, \eg, RD/FRD, PROPIN, ITAR. +% Include copyright information. This field is {\bf not} required, but will +% default to the first of the following examples: +% \par\null\noindent +% ``Approved for public release; distribution is unlimited.'' +% \par\null\noindent +% ``Distribution authorized to DoD only; (reason and date). Other +% requests shall be referred to (controlling DoD office).'' +% \par\null\noindent +% ``Further dissemination only as directed by (controlling DoD office +% and date) or higher DoD authority.'' +% \par\null\noindent +% \hbox to \textwidth{% +% \begin{tabular}{l@{\space---\space}l} +% For DoD & See DoDD 5230.24, ``Distribution Statements on Technical +% Documents.''\\ +% For DoE & See authorities.\\ +% For NASA & See Handbook NHB 2200.2.\\ +% For NTIS & Leave blank. +% \end{tabular}% +% \hss} +% +% \paragraph{13. SUPPLEMENTARY NOTES.}\hskip-3mm\addtocounter{footnote}{-1}\footnotemark +% \DescribeMacro{\SupplementaryNotes} +% \changes{v1.2}{22 Dec 2004}{Added note about the \Lopt{floatlongboxes} +% option.} +% +% \noindent +% Enter information not included elsewhere such as: ``Prepared in +% cooperation with\dots''; ``Translation of\dots''; ``To be published +% in\dots''. When a report is revised, include a statement whether the +% new report supersedes or supplements the older report and the older +% report number if different. ARO requires the following text: +% \begin{verse}\noindent +% ``The views, opinions and/or findings contained in this report +% are those of the authors and should not be construed as an +% official Department of Army position, policy or decision, unless +% so designated by other documentation.'' +% \end{verse} +% +% \paragraph{14. ABSTRACT.}\hskip-3mm{\addtocounter{footnote}{-1}\footnotemark +% \DescribeMacro{\Abstract} +% \changes{v1.2}{22 Dec 2004}{Added note about the \Lopt{floatlongboxes} +% option.} +% +% \noindent +% Include a brief (approximately 200 words) factual summary of +% the most significant information contained in the report. This field +% is required. +% +% \paragraph{15. SUBJECT TERMS.}\hskip-3mm\addtocounter{footnote}{-1}\footnotemark +% \DescribeMacro{\SubjectTerms} +% \changes{v1.2}{22 Dec 2004}{Added note about the \Lopt{floatlongboxes} +% option.} +% +% \noindent +% Enter keywords or phrases identifying major subjects in the report. +% Separate key words and phrases with semicolons (;). +% +% \paragraph{16a. REPORT SECURITY CLASSIFICATION.} +% \DescribeMacro{\ReportClassification} +% +% \noindent +% Enter U.S.\ Security Classification in accordance with U.S.\ Security +% Regulations, \eg\ U, C, S, etc. If this form contains classified +% information, stamp classification level on the top and bottom of the +% page. This field is required, but will default to ``U'' (Unclassified). +% +% \paragraph{16b. ABSTRACT SECURITY CLASSIFICATION.} +% \DescribeMacro{\AbstractClassification} +% +% \noindent +% See 16a (above). +% +% \paragraph{16c. THIS PAGE SECURITY CLASSIFICATION.} +% \DescribeMacro{\PageClassification} +% +% \noindent +% See 16a (above). +% +% \paragraph{17. LIMITATION OF ABSTRACT.} +% \DescribeMacro{\AbstractLimitation} +% +% \noindent +% This block must be completed to assign a distribution limitation to +% the abstract. Enter either ``UU'' (Unclassified Unlimited) or ``SAR'' +% (same as report). An entry in this block is necessary if the abstract +% is to be limited. If blank, the abstract is assumed to be unlimited. +% This field is {\bf not} required, but defaults to ``UU''. +% +% \paragraph{18. NUMBER OF PAGES.} +% \DescribeMacro{\NumberPages} +% \DescribeMacro{\NumberPages*} +% +% \noindent +% Enter the total number of pages (including including Roman numerals). +% This field is required. If the \Lpack{totpages} package\footnote{In +% addition to the \Lpack{totpages} package, you will need the +% \Lpack{everyshi} package ({\sc\scriptsize EVERY SHIpout}) that is used +% by the \Lpack{totpages} package.} is available at your site, then you +% may ignore this field and a value will be entered on the page after the +% processing of the document with \LaTeX. As with labels and citations +% referenced in the document, a message will be printed if \LaTeX\ must +% be run again to propagate a correct label value to the sf298 form. If +% a value is given with this macro, then it {\bf will} be the one used +% on the form. +% +% There is also a star version of the \cmd{\NumberPages} macro that is +% only used with the \Lpack{totpages} package. This adds the given +% number of pages to the result rather than directly setting the page +% number. This macro is used when you are inserting a known number of +% pages, say for an appendix, into the document. +% +% \paragraph{19a. NAME OF RESPONSIBLE PERSON.} +% \DescribeMacro{\ResponsiblePerson} +% +% \noindent +% Enter the name of the person responsible for submission of the +% document. +% +% \paragraph{19b. TELEPHONE NUMBER OF RESPONSIBLE PERSON.} +% \DescribeMacro{\RPTelephone} +% +% \noindent +% Enter the telephone number of the person responsible for the +% submission of the document (including area code). +% +% \section{Configuration} +% \enlargethispage{24pt} +% +% In order to make the use of the report documentation page as easy as +% possible, several aspects of the package are automated or can be easily +% configured. +% +% \subsection{Fonts} +% \label{sec:configfont} +% +% When the package is loaded it defines the fonts that are used by +% basing them on the font families \cmd{\sfdefault} for the field labels and +% \cmd{\rmdefault} for the text entries. By default, they will be based on +% the Computer Modern font family. If you are changing the base font +% families for your paper and you want the fonts used on the |sf298| to +% change also, then you must change the font families before loading the +% \Lpack{sf298} package. See \cite[pages 229,236]{Kopk-Daly93} for more +% information about the default font families. +% +% For any specific field, you can override the default font by +% declaring your preferred value along with your entry, \eg +% \par\null\noindent +% \begin{tabular}{llll} +% ~~ & {\tt \cmd{\Title}\{\cmd{\Huge} A Huge Title\}} & $\rightarrow$ & \smash{\Huge\lower.5ex\hbox{A Huge Title}} +% \end{tabular} +% +% \subsection{Configuration file} +% \label{sec:configfile} +% +% When the package is loaded, it searches the along the standard \TeX\ +% search path, as configured in the system and modified by +% the {\tt TEXINPUTS} environment variable (or equivalent) for the +% for the file \Lfile{sf298.cfg}. It loads the first such file that +% it finds and this file may be used to change defaults or make other +% changes to the \Lpack{sf298} package, \eg +% \par\null\noindent +% \begin{tabular}{ll@{}l} +% ~~ & {\tt \cmd{\PerformingOrg}\{} & {\tt Our Little Laboratory \cmd{\\[-1pt]}}\footnotemark \\[-1pt] +% & & {\tt Computer Science Department \cmd{\\[-1pt]}} \\[-1pt] +% & & {\tt The Big University \cmd{\\[-1pt]}} \\[-1pt] +% & & {\tt 9999 Avenue Street \cmd{\\[-1pt]}} \\[-1pt] +% & & {\tt Anytown, TX 19293--8765} +% \end{tabular}\footnotetext{Note that five lines are fit where only four are recommended in +% Table~\ref{tab:attributes} by shrinking the baselineskip by one point.} +% \par\null\noindent +% For an organization, other typical fields for inclusion in the +% configuration file are \cmd{\ResponsiblePerson} and +% \cmd{\RPTelephone}. For a set of papers that are part of the same +% contract, you could set the \TeX\ search path so that a local version +% of \Lfile{sf298.cfg} is loaded that first \cmd{\inputs} the more global +% one and then sets contract specific defaults associated with a single +% contract, \eg, \cmd{\ContractNumber}, \cmd{\Sponsoring Agency}, +% \cmd{\Acronym}, {\it etc.\/} +% +% The option |noconfig| turns off the input of the configuration file. +% For symmetry, there exists an option |config|, but that is the +% default and does not need to be specified. +% +% \subsection{``Number of Pages'' field} +% \label{sec:configpage} +% +% If the \Lpack{totpages} package is available, then the {\bf Number of +% Pages} field will be automatically filled-in by calculating the +% difference between the page count of the |sf298| page and the last +% page. If this package is not present, and if the field +% is not defined, a warning will be issued. +% +% If the {\bf Number of Pages} is incorrectly calculated, then the +% correct value can be explicitly defined with the \cmd{\NumberPage} +% macro or offset by a fixed value with the \cmd{\NumberPage*} macro. +% The former may be needed if the sf298 form is not the first page of +% the document and an example of the latter is where there is an +% appendix whose pages are inserted and are, therefore, not +% automatically counted. +% +% \subsection{Adjusting the form placement} +% \DescribeMacro{\LeftShift} +% \DescribeMacro{\DownShift} +% \changes{v1.1}{15 Feb 2000}{Changed reference of millimeters to big points.} +% +% \noindent +% Sometimes you need to adjust the placement of a large form, such as to +% provide an extra amount of margin space or for a different page size. +% These two macros allow this fine-tuning: \cmd{\LeftShift\{5\}} will cause +% the form to be shifted 5 big points to the left\@.\footnote{Note that +% there are no units here, the unit step is defined as one big point +% (1 bp) at the beginning of the \cmd{\MakeRptDocPage} command above by +% setting the \cmd{\unitlength}.} The \cmd{\DownShift\{-8.5\}} will cause the +% form to be shifted up $8\frac{1}{2}$ big points (\ie, down a negative +% $8\frac{1}{2}$ big points). For example, the following commands will +% center the sf298 form on A4 paper: +% \par\null\noindent +% \begin{tabular}{ll} +% ~~ & {\tt \cmd{\LeftShift}\{8.5\}} \\ +% & {\tt \cmd{\DownShift}\{-22.0\}} +% \end{tabular} +% +% \section{An example of use with the \Lpack{article} class} +% \label{sec:sample} +% \iffalse +%<*sample> +% \fi% +% +% This sample program demonstrates how the \Lpack{sf298} package may +% be used and integrated with an existing class. Here we redefine +% \cmd{\@makefile} so that we can create a titlepage and report +% documentation page that share a common set of fields, such as the +% report title, the performing organization title and address and the +% report abstract. +% +% First we have start the paper as an \Lpack{article} with twosided +% pages and using the \Lpack{sf298} package. We also make the `@' a +% letter so that we can update some internal names. +% +% \begin{macrocode} +\documentclass[twoside]{article} +\usepackage{sf298} +\makeatletter +% \end{macrocode} +% +% \begin{macro}{\@maketitle} +% +% We modify the standard \cmd{\@maketitle} so that the title and author's +% address (from the internal \cmd{\sf@PeformingOrg} value) are +% integrated into the standard titlepage layout. This may not always be +% the best approach, since the blocks may contain different internal +% layout information on the title page and on the report documentation +% page. Here, the \cmd{\@date} macro is used for the date rather than +% \cmd{\sf@ReportDate} and similarly for the author's names, since the +% desired format is different for these fields, even though the +% information is the same. Another way to do the same thing is to +% define the macro to parse and format these values as desired in each +% case. +% +% As much as possible, a document class that generates both a titlepage +% and the report documentation page (sf298) should allow the common +% information to be entered only once. +% +% \begin{macrocode} +\renewcommand{\@maketitle}{% + \newpage + \null + \vskip 2em% + \begin{center}% + \let\footnote\thanks + {\LARGE\sf@Title\par}% + \vskip 1.5em% + {\large + \lineskip .5em% + \begin{tabular}[t]{c}% + \@author\\[10pt] + \sf@PerformingOrg + \end{tabular}\par}% + \vskip 1em% + {\large\@date}% + \end{center}% + \par + \vskip 1.5em} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\showabstract} +% +% The next macro, \cmd{\showabstract} shows one method of pulling the +% abstract text out of the internal (``hidden'') define, in order to +% include it on the titlepage as we show in the accompanying +% \Lfile{sample298.txt} file. We just have to make sure that we use it +% before making the report documentation page, since this data is +% thrown away after that. +% +% \begin{macrocode} + \newcommand{\showabstract}{% + \noindent + \sf@Abstract} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ReportDescription} +% +% At the end of the \cmd{\titlepage} command, the \cmd{\thanks} macro is +% redefined to be \cmd{\relax}. If we want to define the title once and +% also want to be able to have a \cmd{\thanks} message associated with the +% title on the titlepage, and want to use that same title text on the +% report documentation page, then we need to redefine the \cmd{\thanks} +% macro to eat it's argument. This is done by setting \cmd{\thanks} to +% \cmd{\@gobble} while printing the report documentation page. +% +% \begin{macrocode} +\newcommand{\ReportDescription}{% + \global\let\thanks\@gobble + \MakeRptDocPage + \global\let\thanks\relax} +% \end{macrocode} +% \end{macro} +% +% We are finished with our example integration, so we close off changing +% the internals and make `@' an ``other'' once more. +% +% \begin{macrocode} +\makeatother +% \end{macrocode} +% +% Now we fill in the fields needed for the title and the report +% documentation pages. For reference as a template, we have entered all +% of the \Lpack{sf298} block macros below. The ones that are not being +% used are commented out. Note that although block 7 (Performing Organization Name) +% is rated at four lines according to Table~\ref{tab:attributes}, we can fit five +% lines if we compress them a little. Depending on your base font family and +% such small adjustments, you can probably fit any reasonable set of information +% onto this form in the way that you want to. +% +% \begin{macrocode} +\date{June 1996} +\ReportDate{10--06--1996} +\ReportType{Final} +\DatesCovered{1 June 1996 --- 31 May 1999} +\Title{Final Report Title\thanks{We wish to thank all those who helped with + this project. The views and conclusions contained + in this document are those of the authors and should + not be interpreted as representing anyone else.}} +\ContractNumber{DACA99--99--C--9999} + %\GrantNumber{} + %\ProgramElementNumber{} + %\ProjectNumber{} + %\TaskNumber{} + %\WorkUnitNumber{} +\author{Joe A. Uthor and Jane E. Ditor} +\Author{Uthor, Joe, A., and Ditor, Jane, E.} +\PerformingOrg{% + Our Little Laboratory\\[-1pt] + Computer Science Department\\[-1pt] + The Big University\\[-1pt] + 9999 Avenue Street\\[-1pt] + Anytown, TX 19293--8765} + %\POReportNumber{} +\SponsoringAgency{% + U.S. Army Sponsoring Department\\ + P.O. Box 92919, Miltown, AK 97909--6543\\[10pt] + U.S. Army Monitoring Agency\\ + 909 Mission Rd., Somecity, MD 29399--9753} + %\Acronyms{} + %\SMReportNumber{} + %\DistributionStatement{} +\SupplementaryNotes{% + The views, opinions and/or findings contained in this report are + those of the authors and should not be construed as an official + U.S.\ Government position, policy or decision, unless so designated + by other documentation.} +\Abstract{% + This sample paper shows one way to use the sf298 package along with + the article documentclass to generate a paper with the standard form 298 + as the second physical page in the document. + + In addition, the common text of the title, authors and abstract are + shared and the ``{\tt \string\thanks}'' macro is treated specially so + that it is active for the titlepage and inactive for the report + documentation page.} +\SubjectTerms{keywords; associated words; other words} + %\NumberPages{} + %\ReportClassification{} + %\PageClassification{} + %\AbstractClassification{} +\AbstractLimitation{UU} +\ResponsiblePerson{Mr.\ Joe A. Uthor} +\RPTelephone{(412) 555--9999} +% \end{macrocode} +% +% Finally we begin a very simple report, First we print the titlepage +% and the abstract. Next the report documentation page is written. +% Following these two pages, the table of contents is output, followed by +% the very short report. +% +% \begin{macrocode} +\begin{document} +\pagenumbering{roman} + +\maketitle\thispagestyle{empty} +\begin{abstract} + \showabstract +\end{abstract} + +\ReportDescription + +\tableofcontents +\cleardoublepage +\pagenumbering{arabic} +\setcounter{page}{1} + +\section{Introduction} + +Blah, blah and blah. + +\section{Conclusion} + +More blah, blah and blah. + +\end{document} +% \end{macrocode} +% \iffalse +%</sample> +% \fi% +% +% \StopEventually{% +% \section{Acknowledgments} +% +% I would like to thank Professor Bruce M. Boghosian at the Center for +% Computational Science, Boston University (bruceb@bu.edu) for +% discovering problems with the use of a PostScript background for the +% sf298 form which convinced me to write the entire package in \LaTeX. +% +% Also, to Dr.\ Nino Pereira (pereira@speakeasy.net) for the suggestion +% to make some of the fields more flexible. +% +% \begin{thebibliography}{6}% +% \bibitem{Mull99}% +% Wihelm M\"uller, +% \emph{The \Lpack{totpages} package}, +% 1999/07/13. +% \bibitem{Kopk-Daly93}% +% Michel Goossens, Framk Mittelbach, and Alexander Samarin, +% \emph{A Guide to \LaTeXe}, +% 1993, 2$^{nd}$ edition (revised 1995). +% \end{thebibliography}} +% +% \section{The {\tt DOCSTRIP} modules} +% The following modules are used in the implementation to direct +% {\tt DOCSCRIPT} in generating the external files: +% \begin{tabular}[t]{ll} +% driver & produces a documentation driver file.\\ +% package & produces the package sf298.sty.\\ +% sample & produces a sample \LaTeX\ template and test file. +% \end{tabular} +% +% \newpage +% \section{The code} +% \iffalse +%<*package> +% \fi% +% \subsection{Identification} +% +% \changes{v1.1}{15 Feb 2000}{No longer require the graphicx package.} +% \changes{v1.2}{22 Dec 2004}{Updated package ID.} +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{sf298}[2004/12/22 Standard Form 298] +\typeout{Package: sf298 2004/12/22 v1.2)} +% \end{macrocode} +% +% \subsection{Load the \Lpack{totpages} package, if it exists.} +% +% \begin{macro}{\sf@page} +% \changes{v1.1}{22 Feb 2000}{Added the optional loading of the +% {\sf totpages} package. If present, then the total pages block +% is automatically set.} +% +% Check to see if the \Lpack{totpages} package is present. If it is, +% then load the package and create a local page counter for use in +% calculating the actual total pages. +% +% \begin{macrocode} +\IfFileExists{totpages.sty}{% + \usepackage{totpages} + \newcounter{sf@page}}{} +% \end{macrocode} +% \end{macro} +% +% \subsection{Create the user interface} +% +% \changes{v1.1}{22 Feb 2000}{Moved user interface commands and default +% prior to loading a configuration file} +% +% The following macros define the external and internal portions of the +% user interface. These macros are used to fill the various blocks of +% the form. All but one of the macros have the same pattern: a public +% version which sets the internal value, both based on the block name. +% The exception is the \cmd{\NumberPages} macro that has a starred form +% for special use when the \Lpack{totpages} when the page count is +% calculated automatically (see below). +% +% \begin{macro}{\ReportDate} +% \begin{macro}{\sf@ReportDate} +% \begin{macrocode} +\newcommand\ReportDate[1]{\renewcommand\sf@ReportDate{#1}} +\newcommand\sf@ReportDate{\number\day--\number\month--\number\year} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ReportType} +% \begin{macro}{\sf@ReportType} +% \begin{macrocode} +\newcommand\ReportType[1]{\renewcommand\sf@ReportType{#1}} +\newcommand\sf@ReportType{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\DatesCovered} +% \begin{macro}{\sf@DatesCovered} +% \begin{macrocode} +\newcommand\DatesCovered[1]{\renewcommand\sf@DatesCovered{#1}} +\newcommand\sf@DatesCovered{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Title} +% \begin{macro}{\sf@Title} +% \begin{macrocode} +\newcommand\Title[1]{\renewcommand\sf@Title{#1}} +\newcommand\sf@Title{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ContractNumber} +% \begin{macro}{\sf@ContractNumber} +% \begin{macrocode} +\newcommand\ContractNumber[1]{\renewcommand\sf@ContractNumber{#1}} +\newcommand\sf@ContractNumber{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\GrantNumber} +% \begin{macro}{\sf@GrantNumber} +% \begin{macrocode} +\newcommand\GrantNumber[1]{\renewcommand\sf@GrantNumber{#1}} +\newcommand\sf@GrantNumber{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ProgramElementNumber} +% \begin{macro}{\sf@ProgramElementNumber} +% \begin{macrocode} +\newcommand\ProgramElementNumber[1]{\renewcommand\sf@ProgramElementNumber{#1}} +\newcommand\sf@ProgramElementNumber{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ProjectNumber} +% \begin{macro}{\sf@ProjectNumber} +% \begin{macrocode} +\newcommand\ProjectNumber[1]{\renewcommand\sf@ProjectNumber{#1}} +\newcommand\sf@ProjectNumber{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\TaskNumber} +% \begin{macro}{\sf@TaskNumber} +% \begin{macrocode} +\newcommand\TaskNumber[1]{\renewcommand\sf@TaskNumber{#1}} +\newcommand\sf@TaskNumber{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\WorkUnitNumber} +% \begin{macro}{\sf@WorkUnitNumber} +% \begin{macrocode} +\newcommand\WorkUnitNumber[1]{\renewcommand\sf@WorkUnitNumber{#1}} +\newcommand\sf@WorkUnitNumber{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Author} +% \begin{macro}{\sf@Author} +% \begin{macrocode} +\newcommand\Author[1]{\renewcommand\sf@Author{#1}} +\newcommand\sf@Author{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\PerformingOrg} +% \begin{macro}{\sf@PerformingOrg} +% \begin{macrocode} +\newcommand\PerformingOrg[1]{\renewcommand\sf@PerformingOrg{#1}} +\newcommand\sf@PerformingOrg{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\POReportNumber} +% \begin{macro}{\sf@POReportNumber} +% \begin{macrocode} +\newcommand\POReportNumber[1]{\renewcommand\sf@POReportNumber{#1}} +\newcommand\sf@POReportNumber{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\SponsoringAgency} +% \begin{macro}{\sf@SponsoringAgency} +% \begin{macrocode} +\newcommand\SponsoringAgency[1]{\renewcommand\sf@SponsoringAgency{#1}} +\newcommand\sf@SponsoringAgency{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Acronyms} +% \begin{macro}{\sf@Acronyms} +% \begin{macrocode} +\newcommand\Acronyms[1]{\renewcommand\sf@Acronyms{#1}} +\newcommand\sf@Acronyms{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\SMReportNumber} +% \begin{macro}{\sf@SMReportNumber} +% \begin{macrocode} +\newcommand\SMReportNumber[1]{\renewcommand\sf@SMReportNumber{#1}} +\newcommand\sf@SMReportNumber{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\DistributionStatement} +% \begin{macro}{\sf@DistributionStatement} +% \begin{macrocode} +\newcommand\DistributionStatement[1]{% + \renewcommand\sf@DistributionStatement{#1}} +\newcommand\sf@DistributionStatement{Approval for public release; + distribution is unlimited.} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\SupplementaryNotes} +% \begin{macro}{\sf@SupplementaryNotes} +% \begin{macrocode} +\newcommand\SupplementaryNotes[1]{\renewcommand\sf@SupplementaryNotes{#1}} +\newcommand\sf@SupplementaryNotes{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Abstract} +% \begin{macro}{\sf@Abstract} +% \begin{macrocode} +\newcommand\Abstract[1]{\renewcommand\sf@Abstract{#1}} +\newcommand\sf@Abstract{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\SubjectTerms} +% \begin{macro}{\sf@SubjectTerms} +% \begin{macrocode} +\newcommand\SubjectTerms[1]{\renewcommand\sf@SubjectTerms{#1}} +\newcommand\sf@SubjectTerms{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ReportClassification} +% \begin{macro}{\sf@ReportClassification} +% \begin{macrocode} +\newcommand\ReportClassification[1]{\renewcommand\sf@ReportClassification{#1}} +\newcommand\sf@ReportClassification{U} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\AbstractClassification} +% \begin{macro}{\sf@AbstractClassification} +% \begin{macrocode} +\newcommand\AbstractClassification[1]{% + \renewcommand\sf@AbstractClassification{#1}} +\newcommand\sf@AbstractClassification{U} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\PageClassification} +% \begin{macro}{\sf@PageClassification} +% \begin{macrocode} +\newcommand\PageClassification[1]{\renewcommand\sf@PageClassification{#1}} +\newcommand\sf@PageClassification{U} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\AbstractLimitation} +% \begin{macro}{\sf@AbstractLimitation} +% \begin{macrocode} +\newcommand\AbstractLimitation[1]{\renewcommand\sf@AbstractLimitation{#1}} +\newcommand\sf@AbstractLimitation{UU} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ResponsiblePerson} +% \begin{macro}{\sf@ResponsiblePerson} +% \begin{macrocode} +\newcommand\ResponsiblePerson[1]{\renewcommand\sf@ResponsiblePerson{#1}} +\newcommand\sf@ResponsiblePerson{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\RPTelephone} +% \begin{macro}{\sf@RPTelephone} +% \begin{macrocode} +\newcommand\RPTelephone[1]{\renewcommand\sf@RPTelephone{#1}} +\newcommand\sf@RPTelephone{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\NumberPages} +% \begin{macro}{\NumberPages*} +% \changes{v1.1}{29 Feb 2000}{Added ability to offset the automatic +% number of pages calculation.} +% +% The \cmd{\NumberPages} macro that has a both a regular form +% (\cmd{\NumberPages}) that is used when setting the number of pages, +% and a starred form (\cmd{\NumberPages*}) that is used to offset +% the automatically calculated number of pages calculated using the +% \Lpack{totpages} package. The value supplied by the starred form +% is added to account for inserted pages that are not part of the +% \LaTeX\ paper. For instance, when you are inserting a known number of +% pages from an alternative source, say for an appendix, into the +% document. +% +% The \cmd{\NumberPages} macro looks ahead for an asterisk and if it +% finds one, then it ``eats'' it and passes the argument to the internal +% \cmd{\sf@SNumberPages} macro where it is stored for later use to with the +% total pages calculation. Otherwise, it sends the argument to +% the \cmd{\sf@NNumberPages} macro where it becomes the actual page number. +% +% \begin{macrocode} +\newcommand\NumberPages{% + \@ifnextchar *% + {\def\@tempa*{\sf@SNumberPages}% + \@tempa}% + {\sf@NNumberPages}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\sf@NNumberPages} +% \begin{macro}{\sf@NumberPages} +% \begin{macrocode} +\newcommand\sf@NNumberPages[1]{\renewcommand\sf@NumberPages{#1}} +\newcommand\sf@NumberPages{\relax} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\sf@SNumberPages} +% \begin{macro}{\sf@ExtraPages} +% \begin{macrocode} +\newcommand\sf@SNumberPages[1]{\renewcommand\sf@ExtraPages{#1}} +\newcommand\sf@ExtraPages{0} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Options Processing: Check for a configuration file} +% +% \changes{v1.1}{29 Feb 2000}{Added option to turn on/off the +% configuration file check.} +% \changes{v1.1}{22 Feb 2000}{Added check for a configuration file.} +% \changes{v1.2}{22 Dec 2004}{Added new option: [no]floatlongboxes.} +% +% First we define a switch that we can set with the optional arguments +% and then declare the optional arguments themselves. +% +% \begin{macrocode} +\DeclareOption{config}{\def\sf@config{Y}} +\DeclareOption{noconfig}{\def\sf@config{N}} +% \end{macrocode} +% +% Second, we define an option that floats the four long boxes near +% the bottom of the page. This allows for more flexibility in the +% layout without greatly modifying the standard form. +% +% \begin{macrocode} +\newif\ifsf@floatlongboxes +\DeclareOption{floatlongboxes}{\sf@floatlongboxestrue} +\DeclareOption{nofloatlongboxes}{\sf@floatlongboxesfalse} +% \end{macrocode} +% +% Next we process the optional arguments. We set the default +% to read the configuration file and process any options to +% allow the user to turn it off. Then, depending on the +% current value of the configuration switch, we check for the +% configuration file. +% +% \begin{macrocode} +\ExecuteOptions{config,nofloatlongboxes} +\ProcessOptions +% \end{macrocode} +% +% \begin{macrocode} +\if Y\sf@config + \InputIfFileExists{sf298.cfg}{}{} +\fi +\let\sf@config\relax +% \end{macrocode} +% +% \subsection{Form placement fine tuning} +% +% \begin{macro}{\LeftShift} +% \begin{macro}{\DownShift} +% +% These two macros allow the user to set any offset for the form. This +% allows fine tuning of the form placement as necessary. +% +% \begin{macrocode} +\newcommand\LeftShift[1]{\renewcommand\sf@LeftShift{#1}} +\newcommand\sf@LeftShift{0} +% \end{macrocode} +% +% \begin{macrocode} +\newcommand\DownShift[1]{\renewcommand\sf@DownShift{#1}} +\newcommand\sf@DownShift{0} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Font definition} +% +% \begin{macro}{\sf@setfont} +% \changes{v1.1}{15 Feb 2000}{Added titlefonts to support a \LaTeX-based +% blank form (rather than the previous PostScript one). Added setfont +% stuff to fix weird things that can be done to upset a fixed format.} +% +% This macro is used to set the baseline and insure that the interword +% spacing has not been changed by evil outside influences when +% typesetting the form titles and entries. +% +% \begin{macrocode} +\newcommand{\sf@setfont}[2]{% + \renewcommand{\baselinestretch}{1.0}% + \setlength{\baselineskip}{#2}% + \setlength{\normalbaselineskip}{\baselineskip}% + #1 + \spaceskip=\fontdimen2\font % space between words (\raggedright) + \xspaceskip=\fontdimen2\font + \advance\xspaceskip by\fontdimen7\font} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sf@strut} +% \changes{v1.1}{15 Feb 2000}{Added strut to space the block heading at the +% exactly proper position in the upper left corner.} +% +% This strut is added at the beginning of each block title to place the +% title text at the desired offset from the upper left corner of the +% block. +% +% \begin{macrocode} +\newcommand{\sf@strut}{\rule{0pt}{7pt}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sf@titlefontA} +% \begin{macro}{\sf@settitlefontA} +% \begin{macro}{\sf@titlefontB} +% \begin{macro}{\sf@settitlefontB} +% \begin{macro}{\sf@titlefontC} +% \begin{macro}{\sf@settitlefontC} +% \begin{macro}{\sf@titlefontD} +% \begin{macro}{\sf@settitlefontD} +% \begin{macro}{\sf@titlefontE} +% \begin{macro}{\sf@settitlefontE} +% \begin{macro}{\sf@titlefontF} +% \begin{macro}{\sf@settitlefontF} +% \changes{v1.1}{22 Feb 2000}{Changed font declarations to use +% \cmd{\sfdefault} so that they will adjust to the preferred font family.} +% +% The form headings are set with Sans Serif at 14-, 11-, 8-, and 6-point +% sizes and a couple of different shapes and sizes. Each font is +% actually set by the related \cmd{\settitlefont?} macro which switches +% to the indicated fixed font, sets the new baseline and protects the +% text from external settings. The actual font family used depends on +% the current setting of \cmd{\sfdefault} \cite[pages 229,236]{Kopk-Daly93}. +% +% \begin{macrocode} +\DeclareFixedFont{\sf@titlefontA}{OT1}{\sfdefault}{bx}{n}{\@xivpt} +\newcommand{\sf@settitlefontA}{\sf@setfont{\sf@titlefontA}{18pt}} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareFixedFont{\sf@titlefontB}{OT1}{\sfdefault}{m}{sl}{\@xipt} +\newcommand{\sf@settitlefontB}{\sf@setfont{\sf@titlefontB}{13.6pt}} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareFixedFont{\sf@titlefontC}{OT1}{\sfdefault}{m}{n}{\@vipt} +\newcommand{\sf@settitlefontC}{\sf@setfont{\sf@titlefontC}{7pt}} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareFixedFont{\sf@titlefontD}{OT1}{\sfdefault}{bx}{n}{\@vipt} +\newcommand{\sf@settitlefontD}{\sf@setfont{\sf@titlefontD}{7pt}} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareFixedFont{\sf@titlefontE}{OT1}{\sfdefault}{bx}{n}{\@viiipt} +\newcommand{\sf@settitlefontE}{\sf@setfont{\sf@titlefontE}{9.5pt}} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareFixedFont{\sf@titlefontF}{OT1}{\sfdefault}{m}{sl}{\@viiipt} +\newcommand{\sf@settitlefontF}{\sf@setfont{\sf@titlefontF}{9.5pt}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\sf@entryfont} +% \begin{macro}{\sf@setentryfont} +% \changes{v1.1}{22 Feb 2000}{Changed font declaration to use +% \cmd{\rmdefault} so that it will adjust to the preferred font family.} +% +% The form is filled in with Roman 10-point text. This insures that the +% text will reasonably fit in the form boxes and will not vary with +% the choice of the normal fontsize of the document. As with the title +% fonts, above, the entry font is actually set by the related +% \cmd{\setentryfont} macro. The actual font family used depends on +% the current setting of \cmd{\rmdefault} +% \cite[pages 229,236]{Kopk-Daly93}. +% +% \begin{macrocode} +\DeclareFixedFont{\sf@entryfont}{OT1}{\rmdefault}{m}{n}{\@xpt} +\newcommand{\sf@setentryfont}{\sf@setfont{\sf@entryfont}{11pt}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Error checking and reporting} +% +% \changes{v1.1}{22 Feb 2000}{Added the error checking and reporting.} +% \begin{macro}{\ifsf@undef} +% \begin{macro}{\sf@undeftrue} +% \begin{macro}{\sf@undeffalse} +% +% This switch is used by the error reporting at the end of the document +% to generate a general message that there was an undefined required +% field. +% +% \begin{macrocode} +\newif\ifsf@undef +\sf@undeffalse +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\sf@undefined} +% +% The \cmd{\sf@undefined} macro is executed with the optional argument for +% each required field and without the optional argument at the end of +% the document. +% +% \begin{macrocode} +\newcommand{\sf@undefined}[1][\@empty]{% + \ifx \@empty#1\relax + \ifsf@undef + \typeout{^^J% + SF298 Warning: There are required fields that are undefined.% + ^^J}% + \fi + \else + \sf@undeftrue + \typeout{^^J% + SF298 Warning: \expandafter\string\csname #1\endcsname\space + is undefined.% + ^^J}% + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sf@checkfield} +% +% This macro does the actual checking for undefined required fields. +% Because of the different sorts of field definitions that could be +% created, it was easier to just fill a box with whatever the user +% defined and check to see if the box has a non-zero width. You could +% defeat this if you really wanted to, but it should work for reasonable +% field values. +% +% \begin{macrocode} +\newcommand{\sf@checkfield}[1]{% + \setbox\@tempboxa\vbox{\csname sf@#1\endcsname}% + \ifdim \wd\@tempboxa =0pt + \sf@undefined[#1] + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\AtEndDocument{\sf@undefined} +% \end{macrocode} +% +% +% \subsection{Page layout} +% +% This is the part of the code that actually sets up the form page and +% draws the form. After the form is drawn, most of the macros are set +% to \cmd{\relax} in order to recover as much pool space as possible. +% +% \subsubsection{Form setup and cleanup} +% \begin{macro}{\MakeRptDocPage} +% +% The \cmd{\MakeRptDocPage} command creates the Report Documentation Page +% using the information defined by the associated field macros. This +% should be used at the beginning of a deliverable report just after +% the cover or title page and counts as the first actual page of the +% document. +% +% \begin{macrocode} +\newcommand\MakeRptDocPage{% +% \end{macrocode} +% +% If the \Lpack{twoside} option is specified in the documentclass, then +% it is printed as a separate page with a blank back. This page treated +% as page `{\it i}' (if the documentclass \Lpack{twoside} option is +% specified, then the back treated as page `{\it ii}'. +% +% \begin{macrocode} + \newpage + \if@twoside\ifodd\c@page\else + \null + \thispagestyle{empty}% + \newpage + \fi\fi +% \end{macrocode} +% +% \changes{v1.1}{22 Feb 2000}{Added calculation of total pages (if the +% totpages package is present). Added check for missing fields.} +% +% Check for missing required fields. If the field value is missing, then +% print a warning. In the case of the number of pages, if the +% \Lpack{totpages} package was loaded, then calculate the value, else if +% the total pages is not given, then give a warning. +% +% \begin{macrocode} + \sf@checkfield{ReportDate} + \sf@checkfield{ReportType} + \sf@checkfield{DatesCovered} + \sf@checkfield{Title} + \sf@checkfield{Author} + \sf@checkfield{PerformingOrg} + \sf@checkfield{SponsoringAgency} + \sf@checkfield{Abstract} + \sf@checkfield{ReportClassification} + \sf@checkfield{AbstractClassification} + \sf@checkfield{PageClassification} + \sf@checkfield{AbstractLimitation} +% \end{macrocode} +% +% \begin{macrocode} + \edef\@tempa{\sf@NumberPages}% + \edef\@tempa{\expandafter\@car\@tempa \@nil}% + \if \relax\@tempa\relax + \@ifundefined{c@TotPages}% + {\sf@undefined[NumberPages]} + {\@ifundefined{r@TotPages}% + {\renewcommand{\sf@NumberPages}{{\bf ??}}}% + {\setcounter{sf@page}{\expandafter\@car\r@TotPages\@nil} + \addtocounter{sf@page}{-\value{TotPages}} + \addtocounter{sf@page}{\sf@ExtraPages} + \renewcommand{\sf@NumberPages}{\arabic{sf@page}}}} + \fi +% \end{macrocode} +% +% \changes{v1.1}{15 Feb 2000}{Adjusted offset calculations for new +% blank form.} +% +% Next we make this page number one of the document and draw the form on +% an $8\frac{1}{2}\times 11$ inch letter-size page and all offsets in +% the actual form layout are in pixels from the lower-left corner of the +% picture box as defined by the \cmd{\sf@drawform} macro. When we close +% off the boxes, we allow the form to expand beyond the zero sized box. +% This keeps \LaTeX\ from issuing warnings about overfull boxes. +% +% \begin{macrocode} + \setcounter{page}{1}% + \thispagestyle{empty} + \vbox to 0pt{% + \@tempskipa 34pt + \advance\@tempskipa\voffset + \advance\@tempskipa\topmargin + \advance\@tempskipa\headheight + \advance\@tempskipa\headsep + \advance\@tempskipa\baselineskip + \vskip-\@tempskipa + \hbox to 0pt{% + \@tempskipa\oddsidemargin + \advance\@tempskipa 42pt + \hskip-\@tempskipa +% \end{macrocode} +% +% \begin{macrocode} + \sf@drawform +% \end{macrocode} +% +% \begin{macrocode} + \hss}% + \vss}% +% \end{macrocode} +% +% The page is now done, so, if the documentclass \Lpack{twoside} option +% is specified, generate a blank page for its back, which counts as +% page `{\it ii}'). +% +% \begin{macrocode} + \newpage + \if@twoside + \null + \thispagestyle{empty}% + \newpage + \fi +% \end{macrocode} +% +% \changes{v1.1}{15 Feb 2000}{Added font macros to the list of unused +% definitions. Also \cmd{\ReportDate} and \cmd{\sf@ReportDate}.} +% Finally, the last step is to set all of the now unused definitions to +% \cmd{\relax}, thereby freeing some space. +% +% \begin{macrocode} + \global\let\ReportDate\relax + \global\let\sf@ReportDate\relax + \global\let\ReportType\relax + \global\let\sf@ReportType\relax + \global\let\DatesCovered\relax + \global\let\sf@DatesCovered\relax + \global\let\Title\relax + \global\let\sf@Title\relax + \global\let\ContractNumber\relax + \global\let\sf@ContractNumber\relax + \global\let\GrantNumber\relax + \global\let\sf@GrantNumber\relax + \global\let\ProgramElementNumber\relax + \global\let\sf@ProgramElementNumber\relax + \global\let\ProjectNumber\relax + \global\let\sf@ProjectNumber\relax + \global\let\TaskNumber\relax + \global\let\sf@TaskNumber\relax + \global\let\WorkUnitNumber\relax + \global\let\sf@WorkUnitNumber\relax + \global\let\Author\relax + \global\let\sf@Author\relax + \global\let\PerformingOrg\relax + \global\let\sf@PerformingOrg\relax + \global\let\POReportNumber\relax + \global\let\sf@POReportNumber\relax + \global\let\SponsoringAgency\relax + \global\let\sf@SponsoringAgency\relax + \global\let\Acronyms\relax + \global\let\sf@Acronyms\relax + \global\let\SMReportNumber\relax + \global\let\sf@SMReportNumber\relax + \global\let\DistributionStatement\relax + \global\let\sf@DistributionStatement\relax + \global\let\SupplementaryNotes\relax + \global\let\sf@SupplementaryNotes\relax + \global\let\Abstract\relax + \global\let\sf@Abstract\relax + \global\let\SubjectTerms\relax + \global\let\sf@SubjectTerms\relax + \global\let\ReportClassification\relax + \global\let\sf@ReportClassification\relax + \global\let\AbstractClassification\relax + \global\let\sf@AbstractClassification\relax + \global\let\PageClassification\relax + \global\let\sf@PageClassification\relax + \global\let\AbstractLimitation\relax + \global\let\sf@AbstractLimitation\relax + \global\let\ResponsiblePerson\relax + \global\let\sf@ResponsiblePerson\relax + \global\let\RPTelephone\relax + \global\let\NumberPages\relax + \global\let\sf@NNumberPages\relax + \global\let\sf@NumberPages\relax + \global\let\sf@SNumberPages\relax + \global\let\sf@ExtraPages\relax + \global\let\LeftShift\relax + \global\let\sf@LeftShift\relax + \global\let\DownShift\relax + \global\let\sf@DownShift\relax + \global\let\sf@RPTelephone\relax + \global\let\sf@setfont + \global\let\sf@strut\relax + \global\let\sf@titlefontA\relax + \global\let\sf@settitlefontA\relax + \global\let\sf@titlefontB\relax + \global\let\sf@settitlefontB\relax + \global\let\sf@titlefontC\relax + \global\let\sf@settitlefontC\relax + \global\let\sf@titlefontD\relax + \global\let\sf@settitlefontD\relax + \global\let\sf@titlefontE\relax + \global\let\sf@settitlefontE\relax + \global\let\sf@titlefontF\relax + \global\let\sf@settitlefontF\relax + \global\let\sf@entryfont\relax + \global\let\sf@setentryfont\relax + \global\let\sf@checkfield\relax + \global\let\sf@parbox\relax + \global\let\sf@drawform\relax + \global\let\MakeRptDocPage\relax} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Form layout} +% \begin{macro}{\sf@parbox} +% \changes{v1.1}{15 Feb 2000}{Added.} +% +% This macro is used in the following \cmd{\sf@drawform} to contain fields that +% are to be centered in a block, but expand upward when overfull. +% \begin{macrocode} +\def\sf@parbox(#1,#2)#3{% + \makebox(0,0)[bl]{% + \vbox to #1\unitlength{% + \vss + \noindent + \parbox{#2\unitlength}{\raggedright#3}% + \vfil}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sf@drawform} +% \changes{v1.1}{15 Feb 2000}{Changed from millimeter to big point spacing.} +% \changes{v1.2}{22 Dec 2004}{Removed hard lines on the four long +% boxes if `floatlingboxes' is used.} +% +% First draw the boxes of the form as a large thick-walled box with +% a series of thin horizontal and vertical lines. +% +% \begin{macrocode} +\newcommand\sf@drawform{% + \sf@setentryfont + \setlength{\unitlength}{1bp} + \begin{picture}(539,707)(\sf@LeftShift,\sf@DownShift) + % Draw blank form + \linethickness{1bp}% + \put( 0, 0){\framebox(539,707){}} + % Horizontal lines + \linethickness{0.5bp}% + \put( 0,677){\line(1,0){539}} + \put( 0,635){\line(1,0){539}} + \put( 0,611){\line(1,0){539}} + \put(324,581){\line(1,0){215}} + \put(324,551){\line(1,0){215}} + \put( 0,521){\line(1,0){539}} + \put(324,491){\line(1,0){215}} + \put(324,461){\line(1,0){215}} + \put( 0,431){\line(1,0){539}} + \put( 0,372){\line(1,0){539}} + \put(359,336){\line(1,0){180}} + \put( 0,300){\line(1,0){539}} + \ifsf@floatlongboxes\else + \put( 0,252){\line(1,0){539}} + \put( 0,215){\line(1,0){539}} + \put( 0, 95){\line(1,0){539}} + \fi + \put( 0, 48){\line(1,0){539}} + \put( 0, 36){\line(1,0){180}} + \put(324, 24){\line(1,0){215}} + % Vertical lines + \put(359,707){\line(0,-1){ 30}} + \put(144,635){\line(0,-1){ 24}} + \put(359,635){\line(0,-1){ 24}} + \put(324,611){\line(0,-1){180}} + \put(359,431){\line(0,-1){131}} + \put(180, 48){\line(0,-1){ 48}} + \put(266, 48){\line(0,-1){ 48}} + \put(324, 48){\line(0,-1){ 48}} + \put( 60, 36){\line(0,-1){ 36}} + \put(120, 36){\line(0,-1){ 36}} +% \end{macrocode} +% +% \changes{v1.2}{22 Dec 2004}{Removed hard titles on the four long +% boxes if `floatlingboxes' is used.} +% Next, fill in the individual box titles. Note the use of the +% \cmd{\sf@strut} to set the block titles a little down and to +% the right of the absolute corner of the box. +% +% \begin{macrocode} + % Title text + \put( 0,677){\makebox(359, 30){% + \sf@settitlefontA REPORT DOCUMENTATION PAGE}} + \put(359,677){\makebox(180, 30){% + \sf@settitlefontB\shortstack[c]{% + Form Approved\\[-2pt]% + OMB No. 0704--0188}}} + \put( 3,635){\makebox(533, 42){% + \sf@settitlefontC\parbox{533bp}{\raggedright + The public reporting burden for this collection of information + is estimated to average 1 hour per response, including the + time for reviewing instructions, searching existing data + sources, gathering and maintaining the data needed, and + completing and reviewing the collection of information. + Send comments regarding this burden estimate or any other + aspect of this collection of information, including + suggestions for reducing this burden to Department of + Defense, Washington Headquarters Services, Directorate for + Information Operations and Reports (0704--0188), 1215 + Jefferson Davis Highway, Suite 1204, Arlington, VA + 22202--4302. Respondents should be aware that + notwithstanding any other provision of law, no person shall + be subject to any penalty for failing to comply with a + collection of information if it does not display a currently + valid OMB control number. + {\sf@settitlefontD + PLEASE DO NOT RETURN YOUR FORM TO THE ABOVE ADDRESS.}}}} + \put( 0,611){\makebox(144, 24)[tl]{% + \sf@settitlefontE\sf@strut 1.\ REPORT DATE + \sf@settitlefontF (DD--MM--YYYY)}} + \put(144,611){\makebox(215, 24)[tl]{% + \sf@settitlefontE\sf@strut 2.\ REPORT TYPE}} + \put(359,611){\makebox(180, 24)[tl]{% + \sf@settitlefontE\sf@strut 3.\ DATES COVERED + \sf@settitlefontF (From --- To)}} + \put( 0,521){\makebox(324,90)[tl]{% + \sf@settitlefontE\sf@strut 4.\ TITLE AND SUBTITLE}} + \put(324,581){\makebox(215, 30)[tl]{% + \sf@settitlefontE\sf@strut 5a.\ CONTRACT NUMBER}} + \put(324,551){\makebox(215, 30)[tl]{% + \sf@settitlefontE\sf@strut 5b.\ GRANT NUMBER}} + \put(324,521){\makebox(215, 30)[tl]{% + \sf@settitlefontE\sf@strut 5c.\ PROGRAM ELEMENT NUMBER}} + \put(324,491){\makebox(215, 30)[tl]{% + \sf@settitlefontE\sf@strut 5d.\ PROJECT NUMBER}} + \put(324,461){\makebox(215, 30)[tl]{% + \sf@settitlefontE\sf@strut 5e.\ TASK NUMBER}} + \put(324,431){\makebox(215, 30)[tl]{% + \sf@settitlefontE\sf@strut 5f.\ WORK UNIT NUMBER}} + \put( 0,431){\makebox(324, 90)[tl]{% + \sf@settitlefontE\sf@strut 6.\ AUTHOR(S)}} + \put( 0,372){\makebox(359, 59)[tl]{% + \sf@settitlefontE\sf@strut + 7.\ PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES)}} + \put(359,372){\makebox(180, 59)[tl]{% + \sf@settitlefontE\shortstack[l]{% + \sf@strut 8.\ PERFORMING ORGANIZATION REPORT\\[-2pt] + \sf@strut\phantom{8.\ }NUMBER}}} + \put( 0,300){\makebox(359, 72)[tl]{% + \sf@settitlefontE\sf@strut + 9.\ SPONSORING / MONITORING AGENCY NAME(S) AND ADDRESS(ES)}} + \put(359,336){\makebox(180, 36)[tl]{% + \sf@settitlefontE\sf@strut 10.\ SPONSOR/MONITOR'S ACRONYM(S)}} + \put(359,300){\makebox(180, 36)[tl]{% + \sf@settitlefontE\shortstack[l]{% + \sf@strut 11.\ SPONSOR/MONITOR'S REPORT\\[-3pt] + \sf@strut\phantom{11.\ }NUMBER(S)}}} + \ifsf@floatlongboxes\else + \put( 0,252){\makebox(539, 48)[tl]{% + \sf@settitlefontE\sf@strut + 12.\ DISTRIBUTION / AVAILABILITY STATEMENT}} + \put( 0,215){\makebox(539, 37)[tl]{% + \sf@settitlefontE\sf@strut 13.\ SUPPLEMENTARY NOTES}} + \put( 0,95){\makebox(539,120)[tl]{% + \sf@settitlefontE\sf@strut 14.\ ABSTRACT}} + \put( 0, 48){\makebox(539, 46)[tl]{% + \sf@settitlefontE\sf@strut 15.\ SUBJECT TERMS}} + \fi + \put( 0, 36){\makebox(180, 12)[tl]{% + \sf@settitlefontE\sf@strut 16.\ SECURITY CLASSIFICATION OF:}} + \put( 0, 0){\makebox( 60, 36)[tl]{% + \sf@settitlefontE\sf@strut a.\ REPORT}} + \put( 60, 0){\makebox(60, 36)[tl]{% + \sf@settitlefontE\sf@strut b.\ ABSTRACT}} + \put(120, 0){\makebox(60, 36)[tl]{% + \sf@settitlefontE\sf@strut c.\ THIS PAGE}} + \put(180, 0){\makebox( 86, 48)[tl]{% + \sf@settitlefontE\shortstack[l]{% + \sf@strut 17.\ LIMITATION OF\\[-2pt] + \sf@strut\phantom{17.\ }ABSTRACT}}} + \put(266, 0){\makebox( 68, 48)[tl]{% + \sf@settitlefontE\shortstack[l]{% + \sf@strut 18.\ NUMBER\\[-2pt] + \sf@strut\phantom{18.\ }OF\\[-2pt] + \sf@strut\phantom{18.\ }PAGES}}} + \put(324, 24){\makebox(215, 24)[tl]{% + \sf@settitlefontE\sf@strut 19a.\ NAME OF RESPONSIBLE PERSON}} + \put(324, 0){\makebox(215, 24)[tl]{% + \sf@settitlefontE\sf@strut 19b.\ TELEPHONE NUMBER + \sf@settitlefontF (include area code)}} + \put(415,-17){\makebox(123, 17)[bl]{% + \shortstack[l]{% + {\sf@settitlefontE Standard Form 298 (Rev.\ 8--98)}\\[-2pt]% + {\sf@settitlefontD Prescribed by ANSI Std.\ Z39.18}}}} +% \end{macrocode} +% +% \changes{v1.2}{22 Dec 2004}{If `floatlingboxes' is used, then the +% four long box separator lines and titles are typset along with +% the text so that they may act more dynamically.} +% +% Now, we add the user's entries to the form. For undefined entries, +% we just add null text, the required fields are checked above and +% warning issued if any of them are empty. +% +% \begin{macrocode} + % Fill in form + \put( 4,614){\makebox(0,0)[bl]{\sf@ReportDate}} + \put(148,614){\makebox(0,0)[bl]{\sf@ReportType}} + \put(363,614){\makebox(0,0)[bl]{\sf@DatesCovered}} + \put( 4,523){\sf@parbox( 80,324){\sf@Title}} + \put(328,585){\makebox(0,0)[bl]{\sf@ContractNumber}} + \put(328,555){\makebox(0,0)[bl]{\sf@GrantNumber}} + \put(328,525){\makebox(0,0)[bl]{\sf@ProgramElementNumber}} + \put(328,495){\makebox(0,0)[bl]{\sf@ProjectNumber}} + \put(328,465){\makebox(0,0)[bl]{\sf@TaskNumber}} + \put(328,435){\makebox(0,0)[bl]{\sf@WorkUnitNumber}} + \put( 4,434){\sf@parbox( 80,321){\sf@Author}} + \put( 4,397){\makebox(0,0)[l]{% + \parbox{355bp}{\raggedright\sf@PerformingOrg}}} + \put(363,372){\sf@parbox( 46,176){\sf@POReportNumber}} + \put( 4,331){\makebox(0,0)[l]{% + \parbox{355bp}{\raggedright \sf@SponsoringAgency}}} + \put(363,349){\makebox(0,0)[l]{% + \parbox{176bp}{\raggedright\sf@Acronyms}}} + \put(363,304){\makebox(0,0)[bl]{% + \vbox to 26bp{% + \vss + \noindent + \parbox{176bp}{\raggedright\sf@SMReportNumber}}}} + \ifsf@floatlongboxes + \put( 0,49){\parbox[b]{541bp}{% + \leftskip=4bp + \rightskip=4bp plus 2em + \vbox to 250bp{% + \vbox to 0bp{% + \hbox{\sf@settitlefontE\sf@strut + 12.\ DISTRIBUTION / AVAILABILITY STATEMENT} + \vss} + \vfil + \sf@DistributionStatement + \vfil + \hrule width\linewidth height0.5bp + \vbox to 0bp{% + \hbox{\sf@settitlefontE\sf@strut 13.\ SUPPLEMENTARY NOTES} + \vss} + \vfil + \sf@SupplementaryNotes + \vfil + \hrule width\linewidth height0.5bp + \vbox to 0bp{% + \hbox{\sf@settitlefontE\sf@strut 14.\ ABSTRACT} + \vss} + \vfil + \sf@Abstract + \vfil + \hrule width\linewidth height0.5bp + \vbox to 0bp{% + \hbox{\sf@settitlefontE\sf@strut 15.\ SUBJECT TERMS} + \vss} + \vfil + \sf@SubjectTerms + \vfil}}} + \else + \put( 4,255){\sf@parbox( 38,532){\sf@DistributionStatement}} + \put( 4,217){\sf@parbox( 25,532){\sf@SupplementaryNotes}} + \put( 4, 95){\sf@parbox(110,533){\sf@Abstract}} + \put( 4, 51){\sf@parbox( 36,533){\sf@SubjectTerms}} + \fi + \put( 30, 13){\makebox(0,0){\sf@ReportClassification}} + \put( 90, 13){\makebox(0,0){\sf@AbstractClassification}} + \put(150, 13){\makebox(0,0){\sf@PageClassification}} + \put(223, 13){\makebox(0,0){\sf@AbstractLimitation}} + \put(295, 13){\makebox(0,0){\large\sf@NumberPages}} + \put(328, 33){\makebox(0,0)[l]{\sf@ResponsiblePerson}} + \put(328, 9){\makebox(0,0)[l]{\sf@RPTelephone}} + \end{picture}} +% \end{macrocode} +% \end{macro} +% +% \iffalse +%</package> +% \fi% +% +% \Finale +% diff --git a/Master/texmf-dist/source/latex/sf298/sf298.ins b/Master/texmf-dist/source/latex/sf298/sf298.ins new file mode 100644 index 00000000000..e2e12bc0272 --- /dev/null +++ b/Master/texmf-dist/source/latex/sf298/sf298.ins @@ -0,0 +1,98 @@ +%%
+%% This is file `sf298.ins', the installation file for the `sf298'
+%% package.
+%%
+%% Copyright © 2000,2004 Steven Douglas Cochran.
+%%
+%% The sf298 package may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version. The latest
+%% version of this license is in:
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% This package consists of the files Makefile, sf298.dtx, and
+%% sf298.ins.
+%%
+%% The subfig package is distributed in the hope that it will be
+%% useful, but `as is', WITHOUT WARRANTY OF ANY KIND, either expressed
+%% or implied, including, but not limited to, the implied warranties of
+%% MERCHANTABILITY and FITNESS FOR A PARTICULAR PURPOSE. See the LaTeX
+%% Project Public License for more details.
+
+\def\batchfile{sf298.ins}
+\input docstrip.tex
+
+\keepsilent
+\preamble
+
+Copyright (C) 2000,2005 Steven Douglas Cochran.
+
+This file is NOT the source for sf298, because almost all comments
+have been stripped from it. It is NOT the preferred form of sf298 for
+making modifications to it.
+
+Therefore you can NOT redistribute and/or modify THIS file. You can
+however redistribute the complete source package (Makefile, sf298.dtx
+and sf298.ins) and/or modify it under the terms of the LaTeX Project
+Public License, either version 1.2 of this license or (at your option)
+any later version. The latest version of this license is in:
+http://www.latex-project.org/lppl.txt and version 1.2 or later is part
+of all distributions of LaTeX version 1999/09/03 or later.
+
+The sf298 package is distributed in the hope that it will be useful,
+but `as is', WITHOUT WARRANTY OF ANY KIND, either expressed or
+implied, including, but not limited to, the implied warranties of
+MERCHANTABILITY and FITNESS FOR A PARTICULAR PURPOSE. See the LaTeX
+Project Public License for more details.
+
+\endpreamble
+\declarepreamble\samplepreamble
+
+Copyright (C) 2000,2005 Steven Douglas Cochran.
+
+This file is NOT the source for sample298, because almost all comments
+have been stripped from it. It is NOT the preferred form of sample298
+for making modifications to it.
+
+Therefore you can NOT redistribute and/or modify THIS file. You can
+however redistribute the complete source package (Makefile, sf298.dtx
+and sf298.ins) and/or modify it under the terms of the LaTeX Project
+Public License, either version 1.2 of this license or (at your option)
+any later version. The latest version of this license is in:
+http://www.latex-project.org/lppl.txt and version 1.2 or later is part
+of all distributions of LaTeX version 1999/09/03 or later.
+
+The sf298 package is distributed in the hope that it will be useful,
+but `as is', WITHOUT WARRANTY OF ANY KIND, either expressed or
+implied, including, but not limited to, the implied warranties of
+MERCHANTABILITY and FITNESS FOR A PARTICULAR PURPOSE. See the LaTeX
+Project Public License for more details.
+
+\endpreamble
+\keepsilent
+
+% programs and packages
+
+\generate{\file{sf298.sty}{\from{sf298.dtx}{package}}
+ \usepreamble\samplepreamble
+ \file{sample298.tex}{\from{sf298.dtx}{sample}}
+ }
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space sf298.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `sf298.dtx'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{*}
+\Msg{***********************************************************}
+}
+
\ No newline at end of file |