summaryrefslogtreecommitdiff
path: root/support/lametex/page/page_demon.ps
blob: e3d60abf885e7212691fe456f8c423aab692fdc7 (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
%! This is a PostScript library meant to be included in other files %%%
%% Postscript Code by Jon Monsarrat Copyright 1991
%% permission given for anything except selling this or deleting the header.
%% This is a page template for the SCRATCH formatter
%% A normal page for the ASYLUM assassin game

% A margin path that goes around the picture of the BSD daemon. The daemon
% itself is rather complex to be the margin path itself, but this is possible.
/DemonBox
{
  3 in 3 in moveto
  2.8 in 3.7 in lineto
  4.1 in 3.7 in lineto
  4.1 in 4.3 in lineto
  2.7 in 5.2 in lineto
  2.6 in 5.7 in lineto
  3.4 in 5.9 in lineto
  4.1 in 8 in lineto
  5.8 in 8 in lineto
  5.4 in 4 in lineto
  7.3 in 3.5 in lineto
  7.3 in 2.6 in lineto
  5.1 in 2.6 in lineto
  closepath
} bind def

%%%%%%%%%%%  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

%% REQUIRED DEFINITIONS START HERE %%

% Makes a path that desribes the page
/PageShape
{
%  0 0 moveto 8.5 in 0 lineto 8.5 in 11 in lineto 0 11 in lineto closepath
  DemonBox
  currentflat 8 mul
} bind def

% Anything to do when a new page is started
/StartPage
{
} bind def

% Anything to do when a new page is ended
/EndPage
{
   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  % A new page here really does mean start a new page.
} 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 true 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 .5 in def    % Absolute Left Margin for page
  /RM 8 in def  % Absolute Right Margin for page
  
  userdict /pagenumber known not
  { /pagenumber 1 def } if    % Initialize pagenumber if not done already
} bind def

InitPage        % Just loading this file initializes the page.