2.11BSD/src/local/mp/mp.pro.altl.ps

%!PS-Adobe-1.0
%%Creator: Steve Holden
%%Modified: John Macdonald
%%Title: @(#)mp.pro.altl.ps 1.4 92/02/17
%%CreationDate: see above
%%PageLength 60
%%LineLength 80
%%NumCols 2
%%DocumentFonts: Times-Bold Times-Roman Courier
%%Pages: (atend)
%%EndComments

/setmargin {
  /leftedge 0 def
  /bottomedge 0 def
  fullheight fullwidth LandscapeMode { exch } if
    /rightedge exch def
    /topedge exch def
  9 7 LandscapeMode { exch } if pop
    /FontSize exch def

  /font1d /Times-Bold           reencodeISO
  /font2d /Times-Roman          reencodeISO
  /CourierISO /Courier          reencodeISO
  /fontHd /Helvetica-BoldOblique        reencodeISO
  /fontH2 /Helvetica-BoldOblique        reencodeISO
  /fontNd /Times-Bold           reencodeISO
  /font3d backspacefont

  /BoldFont      { /font1d findfont FontSize scalefont setfont } def
  /pf            { /font2d findfont FontSize scalefont setfont } def
  /sf            { /font3d findfont FontSize scalefont setfont } def
  /fontH         { /fontHd findfont 14 scalefont setfont } def
  /fontD         { /fontH2 findfont 10 scalefont setfont } def
  /fontN         { /fontNd findfont 12 scalefont setfont } def
} def

/graybox	% grey x1 y1 x2 y2 graybox --
{
    newpath
      4 -1 roll 2 copy			% y2 x1
      10 sub exch moveto
      4 -1 roll 2 copy			% x1 y1
      10 180 270 arc
      4 -1 roll 1 copy 3 -1 roll	% x2 y1
      10 270 0 arc
      3 -1 roll 1 copy 3 1 roll		% x1 y2 x2 y2
      10 0 90 arc
      10 90 180 arc
    closepath
    gsave
      setgray fill
    grestore
    0 setgray stroke
} def

/endpage		% page_number endpage --
{
  gsave
    % listing type, user, date across the bottom
    0.88                                % gray level
    leftedge  50 add topedge 56 sub     % bottom lt corner
    rightedge 95 sub topedge 36 sub     % top rt corner
    graybox
    leftedge 50 add topedge 50 sub moveto
    fontD
    MailFor show
    fontH
    User show
    fontD
    rightedge 95 sub TimeNow stringwidth pop sub
    topedge 52 sub moveto TimeNow show
    % page number to the bottom right corner
    1                                   % gray level
    rightedge 70 sub topedge 56 sub     % bottom lt
    rightedge 50 sub topedge 36 sub     % top rt
    graybox
    fontD
    (Page) dup stringwidth
       topedge 40 sub exch sub                  % y-centered
       exch 2 div rightedge 60 sub exch sub     % x-centered
       exch moveto show
    fontH
    dup stringwidth
       topedge 58 sub exch sub                  % y-centered
       exch 2 div rightedge 60 sub exch sub     % x-centered
       exch moveto show
    0.88                                   % gray level
    leftedge  50 add bottomedge 50 add     % bottom lt corner
    rightedge 50 sub bottomedge 70 add     % top rt corner
    graybox
    fontH
    % compute x pos for centring
      % ((l+50) + (r-50)) / 2 is the page centre
      leftedge rightedge add 2 div
      % but we want to start at the beginning of the string, not the middle
      Subject stringwidth pop 2 div sub
    % y pos is simple
      bottomedge 54 add
      moveto
    Subject show
  grestore
  PageSave restore      % restore *always* before showpage
  showpage		% display it
} def

/endcol			% page_number col_number endcol --
{
  pop			% get rid of col_number
  pop                   % get rid of page_number
  /ypos topedge 92 sub def
  /xpos rightedge leftedge sub 2 div def
  xpos ypos moveto
} def

/newpage	% page_number newpage --
{
  pop		% pageno
  /PageSave save def
  LandscapeMode {setlandscape} if
  /lct 0 def
  /ypos topedge 92 sub def
  /xpos leftedge 50 add def
  xpos ypos moveto
  sf
} def

/setlandscape
{
  612 0 translate
  90 rotate
} def

/showline
{
  show
  /ypos ypos FontSize sub def
  xpos ypos moveto
} def

% see the trouble shooting section in the README for details on setscreen.
106 45 {dup mul exch dup mul add 1.0 exch sub} setscreen

/LandscapeMode true def

setmargin