summaryrefslogtreecommitdiff
path: root/support/lametex/page/page_check.ps
blob: b6afc880621d4dffa4475fc7a8d8995c19fd7f46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
%! page_check.ps    - A replica of the standard LaTeX page
%% This is a LameTeX Page Description File written in PostScript.
%% Postscript Code by Jon Monsarrat Copyright 1992
%% permission given for anything except selling this or deleting the header.
%% This is a page template for the LameTeX formatter
%% A checkerboard page for LameTeX output to look like LaTeX output

%%%%%%%%%%%  icon-name  LeftMarginIcon   - %%%%%%%%%%%%
% Given the name of an icon, executes the icon in the left margin.
/LeftMarginIcon
{
  gsave
       20 ypos 72 sub translate cvx exec
  grestore
} bind def

%%%%%%%%%%%%%%%%%  Box %%%%%%%%%%%%%%%%%%%%%%
% One of many generic Box algorithms I have written in my life. Deal.
/Box
{
  wp 4 div 0 rlineto 0 hp 4 div rlineto wp -4 div 0 rlineto
  0 hp -4 div rlineto
} bind def

%%%%%%%%%%%%%%%% width height left bot Check-Page %%%%%%%%%%%%%%%%%%%%%%
% Check-Page draws a checkerboard page, given margins and size
/Check-Page
{
  /bp exch def /lp exch def /hp exch def /wp exch def
  lp bp moveto Box
  lp bp hp 2 div add moveto Box
  lp wp 2 div add bp moveto Box
  lp wp 2 div add bp hp 2 div add moveto Box
  lp wp 4 div add bp hp 4 div add moveto Box
  lp wp .75 mul add bp hp 4 div add moveto Box
  lp wp 4 div add bp hp .75 mul add moveto Box
  lp wp .75 mul add bp hp .75 mul add moveto Box
  closepath
} bind def

%%%%%%%%%%%%%%%% width height left bot Check-Page2 %%%%%%%%%%%%%%%%%%%%%%
% Check-Page2 draws a checkerboard page, given margins and size
/Check-Page2
{
  /bp exch def /lp exch def /hp exch def /wp exch def
  lp wp 4 div add bp moveto Box
  lp wp .75 mul add bp moveto Box
  lp bp hp 4 div add moveto Box
  lp wp 2 div add bp hp 4 div add moveto Box
  lp wp 4 div add bp hp 2 div add moveto Box
  lp wp .75 mul add bp hp 2 div add moveto Box
  lp bp hp .75 mul add moveto Box
  lp wp 2 div add bp hp .75 mul add moveto Box
  closepath
} bind def

%% REQUIRED DEFINITIONS START HERE %%

% Makes a path that desribes the page
/PageShape
{
  flip 1 eq
  {
    6.75 in 9.2 in 1.25 in .5 in Check-Page
  }
  {
    6.75 in 9.2 in 1.25 in .5 in Check-Page2
  } ifelse
  currentflat 8 mul
} bind def

% Anything to do when a new page is started
/StartPage
{
   grestoreall
   flip 1 eq
   {
     180 rotate
     -9.1 in -10.2 in translate
   } if
} bind def

% Anything to do when a new page is ended
/EndPage
{
   flip 1 eq
   {
     pagenumber 4 string cvs
     dup stringwidth pop 8.5 in
     formatdict /rightmargin get sub
     formatdict /leftmargin get sub 
     exch sub 2 div formatdict /leftmargin get add
     formatdict /bottommargin get 2 div moveto show
     /pagenumber pagenumber 1 add def
     showpage
   } if
   /flip 1 flip sub def
} bind def

%% INITIALIZATION TO DO WHEN FILE IS LOADED %%
% Page-specific defaults that describe the page.
/InitPage
{
  /evenodd true def   % if true use even-odd rule; false means winding rule
  /fillout false def  % true means fill outside shape. false is inside.

  /in { 72 mul } def
  /BM 0 in def    % Absolute Bottom Margin for page
  /TM 11 in def   % Absolute Top Margin for page
  /LM 0 in def    % Absolute Left Margin for page
  /RM 8.5 in def  % Absolute Right Margin for page

  /flip 0 def  
  userdict /pagenumber known not
  { /pagenumber 1 def } if    % Initialize pagenumber if not done already
} bind def

InitPage        % Just loading this file initializes the page.