summaryrefslogtreecommitdiff
path: root/support/lametex/page/page_shake.ps
blob: 1513d36a3ef84019c8681510befbd0722399be77 (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
%! page_shake.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 page with wavy margins for LameTeX 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

%% REQUIRED DEFINITIONS START HERE %%

%%%%%%%%%%%%%%%% PageShape %%%%%%%%%%%%%%%%%%%%%%
% PageShape draws a wavy page, given margins.
/PageShape
{
  4 dict begin
  /bp 0 in def /lp -.5 in def /hp 11 in def /wp 9.5 in def
  lp .5 in add bp moveto
  wp .8 in sub 0 rlineto
  1 1 4
  {
    pop
    currentpoint hp 16 div add hp 16 div
    270 90 arc
    currentpoint hp 16 div add hp 16 div
    270 90 arcn
  } for
  wp .8 in sub -1 mul 0 rlineto

  1 1 4
  {
    pop
    currentpoint hp 16 div sub hp 16 div
    90 270 arc
    currentpoint hp 16 div sub hp 16 div
    90 270 arcn
  } for
  end
  closepath
  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 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
  
  userdict /pagenumber known not
  { /pagenumber 1 def } if    % Initialize pagenumber if not done already
} bind def

InitPage        % Just loading this file initializes the page.