% Three part head and foot macros. 1/87
% Lance Berc
% Olsen & Associates    [email protected]
% 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