[comp.text.tex] missing acknowledgment for unixman.sty

pauld@cs.washington.edu (Paul Barton-Davis) (06/06/91)

I omitted to include the following acknowledgment in the current
version of unixman.sty. It is included below in a "new" version (no
other changes, apart from reflecting my marital status :-). I have
posted the whole thing reluctantly because its probably the only way
to make sure the ack. to Dave gets in properly .... sorry for the
wasted bandwidth.
--------
%% Unix `man' macros for LaTeX
%% Paul Barton-Davis <pauld@cs.washington.edu> Feb 1989, June 1991

%% v1.2 - removed references to new font switches, tidied up
%%        page dimensions a little.

%% Thanks are due to Dave Kruger (dak@hpauto.aus.hp.com) for suggested changes
%% to page dimensions, suggested fixes to various bugs, and other general
%% suggestions.

\def\@truedocstyle{Document Style `Unix Manual' V1.2 June 4th 1991}
\input{article.sty}

%%
%% --------------- PAGE DIMENSIONS -------------------
%%

\newdimen\sectionindent
\newdimen\subsectionindent
\newdimen\subsubsectionindent

\sectionindent 0.5 true in
\subsectionindent 0.25 true in
\subsubsectionindent 0pt

\oddsidemargin \sectionindent
\evensidemargin \sectionindent

\hoffset -1.35 cm  %% I really don't know why it needs this ...
\textwidth 6 in
\textheight 21.5cm
\headsep 0.5 in
\topmargin -8mm
\topskip 0pt

\footskip 0.5 in
\parindent 0pt
\parskip \baselineskip

%%
%% ------------------- FONTS -------------------
%%


%% Normal troff uses Times Roman for its output. I much prefer
%% this, but many LaTeX users have no access to this. If you
%% want to, you can insert a magic incantation here that will
%% give you Times Roman (I use \input{times.sty}). Otherwise,
%% you'll get cruddy old Computer Modern throughout.

%%
%% ---------------- SECTIONING COMMANDS --------------
%%

\def\section{\@startsection
{section}{1}{-\sectionindent}
{0pt plus .5ex minus -.2ex}{-1sp}{\normalsize\bf}*}

\def\subsection{\@startsection
{subsection}{2}{-\subsectionindent}
{0pt plus .5ex minus -.2ex}{-1sp}{\normalsize\bf}*}

\def\subsubsection{\@startsection
{subsubsection}{3}{\subsubsectionindent}
{0pt plus .5ex minus -.2ex}{-1sp}{\normalsize\it}*}

%%
%% a modified version of \@xsect
%%

%% In this case, if AFTERSKIP is negative, we simply
%% backup by \parskip immediately after the section heading.
%% This has the net effect of leaving no extra vertical space
%% between the heading and any following material. We also set
%% \@nobreaktrue to avoid extra space when putting a \list
%% immediately after such a heading.

\def\@xsect#1{\@tempskipa #1\relax
      \ifdim \@tempskipa>\z@
       \par \nobreak
       \vskip \@tempskipa
       \@afterheading
    \else 
	\global\@nobreaktrue 
	\global\@noskipsectrue
        \everypar{\if@noskipsec \global\@noskipsecfalse
                   \clubpenalty\@M \hskip -\parindent
                   \begingroup \@svsechd \endgroup \unskip
                   \vskip -\parskip
                  \else \clubpenalty \@clubpenalty
                    \everypar{}\fi}%
   \fi
   \ignorespaces}


%%
%% --------------- MISCELLANEOUS MACROS ---------------
%%

\def\command#1#2{{\it #1}\/{\rm (#2)}}%
\def\code#1{{\bf #1}}
\def\>{$>$\ignorespaces}%
\def\<{$<$\ignorespaces}%
\def\tilde{\~{}}%
\def\HOME{\tilde}%
\def\bs{$\backslash$}
\def\file#1{{\bf #1\/}}
\def\prog#1{{\sf #1}}
\def\pipe{{\tt |}}
\def\ltrl#1{{\bf #1}}
\def\arg#1{{\it #1}}

\def\name#1#2{%
\section{NAME}
#1 -- #2}
\def\synopsis{\section{SYNOPSIS}}
\def\description{\section{DESCRIPTION}}
\def\usage{\section{USAGE}}
\def\options{\section{OPTIONS}}
\def\diagnostics{\section{DIAGNOSTICS}}
\def\files{\section{FILES}}
\def\see{\section{SEE ALSO}}

% super speedy font switching

\def\I #1 {{\it #1}\ }
\def\R #1 {{\rm #1}\ }
\def\B #1 {{\bf #1}\ }
\def\T #1 {{\tt #1}\ }
\def\S #1 {{\sf #1}\ }

\def\BI #1 #2 {{\bf #1}\ {\it #2}\ }
\def\BR #1 #2 {{\bf #1}\ {\rm #2}\ }
\def\RB #1 #2 {{\rm #1}\ {\bf #2}\ }
\def\RI #1 #2 {{\rm #1}\ {\it #2}\ }
\def\IB #1 #2 {{\it #1}\ {\bf #2}\ }
\def\IR #1 #2 {{\it #1}\ {\rm #2}\ }


%%
%% ---------------- HEADERS AND FOOTERS ------------------
%%

%% first we define `thing' to expand to the name of whatever this
%% manpage is about. Then, we case on #2 and define the manual section
%% that this fits under. It is in this section that we have some
%% local specialities - sections numbered above 8 define local
%% manual sections.

%% Here is a map -

%%   9 - Operations
%%  10 - Communications
%%  11 - Checklists
%%  12 - Procedures
%%  13 - Standards
%%  14 - Devices

%%
%% page numbering
%%
%% This allows us to have selected `extra pages' in the style
%% of some of the newer troff filters - Pages normally numbered
%% with a pagenumber after \@xpgstart are subsequently numbered

%%        \@xpgstart{a,b,c ...}

%% where \@xpgstart is (hopefully obviously) a number !

\newcount\@xpgstart
\newcounter{@xpg}
\setcounter{@xpg}{1}
\newif\ifxpg \xpgfalse

\def\startpage#1{\setcounter{page}{#1}}
\def\extrapagesfrom#1{\@xpgstart #1 \xpgtrue}

%%
%% now define the header and footer
%%

%%%%%%%%%%%%%%%%%%%%%%% threepart.sty inlined %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
% Three part head and foot macros. 1/87
% Lance Berc
% Olsen & Associates	mcvax!unizh!olsen!lance@seismo.css.gov
% Seefeldstrasse 233
% CH-8008 Zurich

% How users can set the head and foot text.
\def\lhead#1{\gdef\@lhead{#1}} \def\lfoot#1{\gdef\@lfoot{#1}}
\def\chead#1{\gdef\@chead{#1}} \def\cfoot#1{\gdef\@cfoot{#1}}
\def\rhead#1{\gdef\@rhead{#1}} \def\rfoot#1{\gdef\@rfoot{#1}}

% Initialization of the head and foot text.
% By default the page number is at the center of the foot and everything
% else is empty.
\def\@lhead{} \def\@lfoot{}
\def\@chead{} \def\@cfoot{{\rm \thepage}}
\def\@rhead{} \def\@rfoot{}

% Put together a three part header or footer given the left, center and
% right text. The \lap commands put the text into an hbox of zero size,
% so overlapping text is not detected (it just overlaps).
\def\@threepart#1#2#3{\rlap{#1} \hfil {#2} \hfil \llap{#3}}

% Swap the notices on odd and even pages when twosided.
\def\ps@threepartheadings
    {
    \def\@oddhead{\@threepart{\@lhead}{\@chead}{\@rhead}}
    \def\@oddfoot{\@threepart{\@lfoot}{\@cfoot}{\@rfoot}}

    \if@twoside
	\def\@evenhead{\@threepart{\@rhead}{\@chead}{\@lhead}}
	\def\@evenfoot{\@threepart{\@rfoot}{\@cfoot}{\@lfoot}}
    \else
	\def\@evenhead{\@threepart{\@lhead}{\@chead}{\@rhead}}
	\def\@evenfoot{\@threepart{\@lfoot}{\@cfoot}{\@rfoot}}
    \fi
    }

% Default page style
\ps@threepartheadings

% Default footers
\cfoot{\thepage}

%%%%%%%%%%%%%%%%% end of threepart.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\@foottxt{\hbox to 0pt{\hfill}}
\def\@date{\hbox to 0pt{\hfill}}

%%\version{VERSION-NUMBER}{DATE}

\def\version#1#2{%
	\def\@foottxt{#1}
	\def\@date{#2}}

%%\header{NAME}{SECTION}[HEADER][FOOTER]

\newif\if@userhead 

\def\header#1#2{
	\@userheadfalse
	\def\@mansecnum{#2}	
	\@ifnextchar[%
	   {\@bhead{#1}{#2}}
	   {\@head{#1}{#2}}}

\def\@bhead#1#2[#3]{%
	\def\@mansect{\uppercase{#3}}%
	\@ifnextchar[%
		{\@chead{#1}{0}}
		{\@head{#1}{0}}}

\def\@chead#1#2[#3]{\def\@foottxt{#3}
	\@head{#1}{#2}}


\def\@head#1#2{%
\def\this{{\bf #1}}
\ifcase #2
	  \relax
	\or
	  \def\@mansect{USER COMMANDS}
	\or
	  \def\@mansect{SYSTEM CALLS}
   	\or
	  \def\@mansect{LIBRARY FUNCTIONS}
	\or
	  \def\@mansect{SPECIAL FILES}
	\or
	  \def\@mansect{FILE FORMATS}
	\or
	  \def\@mansect{GAMES AND DEMOS}
	\or
	  \def\@mansect{TABLES}
	\or
	  \def\@mansect{MAINTAINANCE COMMANDS}
	\or
	  \def\@mansect{OPERATIONS}
	\or
	  \def\@mansect{COMMUNCIATIONS}
	\or
	  \def\@mansect{PROCEDURES}
	\or
	  \def\@mansect{STANDARDS}
	\or
	  \def\@mansect{DEVICES}
\fi
%%
%% head line
%%
\rhead{\normalsize\uppercase{#1\/(\@mansecnum)}}
\chead{\normalsize\@mansect}
\lhead{\normalsize\uppercase{#1(\@mansecnum)}}
%%
%% footline
%%
\rfoot{\ifxpg%
	  \ifnum \thepage < \@xpgstart%
	     \normalsize\thepage
 	  \else%
	     \normalsize\the\@xpgstart\alph{@xpg}%
	     \addtocounter{@xpg}{1}
	  \fi
	\else
	     \normalsize\thepage
	\fi}
\cfoot{\normalsize Last change: \@date}
\lfoot{\normalsize Version: \@foottxt}}

%% redefine outputpage so as to ensure that the headline and
%% the footline cover the sectional headings as well.

\def\@outputpage{\begingroup\catcode`\ =10 \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
  \@tempdima \textwidth %% calculate total page width
  \advance\@tempdima \sectionindent
  \shipout
  \vbox{\normalsize \baselineskip\z@ \lineskip\z@
        \vskip \topmargin \moveright\@themargin
        \vbox{\setbox\@tempboxa
              \vbox to\headheight{\hbox to\@tempdima{\strut\@thehead}
				  \vfil}%
              \box\@tempboxa
              \vskip \headsep
              \hbox to\@tempdima{\hss\box\@outputbox}
              \baselineskip\footskip
              \hbox to\@tempdima{\@thefoot}}}%
  \global\@colht\textheight\endgroup
  \stepcounter{page}\let\firstmark\botmark}


%%   --------------- ENVIRONMENTS --------------------

%% a kludge to get correct spacing of a list environment 
%% immediately after a section name (used within given environments)

\newdimen\@ughamount 
\@ughamount -14pt %% Don't ask ...

\def\@ugh{\vskip \@ughamount}

\def\@item[#1]{%
  \if@noparitem \@donoparitem 
  \else
         \if@inlabel \indent \par \fi
         \ifhmode \unskip\unskip \par \fi 
         \if@newlist 
		\if@nobreak 
			\@nbitem 
	 	\else
                        \addpenalty\@beginparpenalty
                        \addvspace\@topsep \addvspace{-\parskip}
		\fi
           \else \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}

%% A new makelabel command that attempts to set
%% the item label flushleft in a box of width \labelwdith.
%% If the label is too wide, then we throw in an additional hbox
%% the end, so that the item text is on a new line (kludge-y !)
%% This matches the conventional method of displaying options
%% in the Unix manuals.

\def\flmakelabel#1{\setbox\@tempboxa\hbox{#1}%
		   \ifdim \wd\@tempboxa > \labelwidth%
			 \hbox to \labelwidth{%
				\vbox{%
				    \hbox to 0pt{#1\hss}%
				    \hbox to 0pt{\hfil}}%
			    \hfil}%
		    \else%
			 #1\hfil\relax
		    \fi}
%%
%% Options environment
%%

%% \opt{OPTION} option text ...
%% \optarg{OPTION}{ARGUMENT} option text ...

\def\opt#1{\item[{\bf #1}]}
\def\optarg#1#2{%
	 \def\arg{{\it #2}\ }%
	 \item[{\bf #1}\ {\it #2}]}

\newdimen\optionwidth
\optionwidth\sectionindent

\def\options{%
\list{}{%
\leftmargin \optionwidth
\rightmargin 0pt
\labelwidth \optionwidth
\topsep -\parskip
\partopsep -\parskip
\labelsep 0pt
\let\@nbitem=\@ugh
\let\makelabel=\flmakelabel}}

\let\endoptions=\endlist

%%
%% file lists
%%

\newdimen\filenamewidth
\filenamewidth 2.0in
\let\filelistfont=\bf

\def\filelist{%
\list{}{%
\leftmargin \filenamewidth
\rightmargin 0pt
\labelwidth \filenamewidth
\topsep -\parskip
\partopsep -\parskip
\itemsep 0pt
\parsep 0pt
\labelsep 0pt
\let\@nbitem=\@ugh
\let\makelabel=\flmakelabel}}

\let\endfilelist=\endlist

%% \fileref{FILENAME} description ...

\def\fileref#1{\item[{\filelistfont #1}]\relax}

%% description

\newdimen\descriptionwidth
\descriptionwidth 1.5 in

\def\descriptionlabel#1{\flmakelabel{\bf #1}}

\def\description{\list{}{%
\labelwidth \descriptionwidth
\leftmargin \descriptionwidth
\rightmargin 0pt
\topsep 0pt plus 1pt
\partopsep 0pt plus 1pt
\labelsep 0pt
\let\makelabel=\descriptionlabel}}

\let\enddescription=\endlist

%% a kludge for use immediately after a section heading:

\def\sdescription{\list{}{%
\labelwidth \descriptionwidth
\leftmargin \descriptionwidth
\rightmargin 0pt
\topsep 0pt plus 1pt
\partopsep 0pt plus 1pt
\labelsep 0pt
\let\@nbitem=@ugh
\let\makelabel=\descriptionlabel}}

\let\endsdescription=\endlist

%% examples

\let\examplefont=\tt

\def\example{\list{}{%
\leftmargin 1cm
\rightmargin 1cm
\topsep 0pt
\partopsep 0pt
\examplefont}
\item[]}

\let\endexample=\endlist

-- 
Paul Barton-Davis <pauld@cs.washington.edu> UW Computer Science Lab	 

"People cannot cooperate towards common goals if they are forced to
 compete with each other in order to guarantee their own survival."