chiark / gitweb /
wip new arrangements
[pandemic-rising-tide.git] / cmyk.ps
1 %!
2
3 %    CYM     K
4 %
5 %    9^3     0 1 2     9 pagex   @   9 x 9 x 3       = 243
6 %
7 %    pages Y
8 %      horiz M         } M-C-K grid
9 %        vert C        } M-C-K grid
10 %           veert' K   } M-C-K grid
11 %
12 %    5^3     3 4       1 page    @   5 x 5 x 5 x 2   = 250
13 %    5^3     6 8       1 page    @   5 x 5 x 5 x 2   = 250
14 %
15 %    pages K
16 %      columns K'
17 %        vert Y
18 %          horiz M     } M-C-K grid
19 %            vert' C   } M-C-K grid
20
21 % OLD
22 %   16^3 x    0 .. 3       1 Y per page
23 %    8^3 x    4 .. 7       4 Y per page      8 = 0 2 4 6 8 10 12 15
24 %             8 10 13 15
25
26 /paperx 595 def
27 /papery 842 def
28
29 /margin 18 def
30
31 /printareax paperx margin 2 mul sub def
32 /printareay papery margin 2 mul sub def
33
34 /textx 20 def
35 /texty 12 def
36
37 /szox printareax textx sub def
38 /szoy printareay texty sub def
39
40 % o = outer, i = inner, f = final
41
42 /margox 5 def
43 /margoy 5 def
44
45 /margix 2 def
46 /margiy 2 def
47
48 /margbx 10 def
49 /margby 10 def
50
51 % strid = stride
52
53 /digits [ (0) (1) (2) (3) (4) (5) (6) (7) (8) (9)
54           (a) (b) (c) (d) (e) (f) ] def
55
56 /Helvetica findfont texty scalefont setfont
57
58 /klist_get {
59     klist
60         blackx
61         blacky  knx mul add
62         get
63 } def
64 /kentry_x {
65     textx
66     magenta stridox mul  add
67     blackx  stridix mul  add
68     
69 } def
70 /kentry_y {
71     blacky  neg kmy add  stridiy mul
72     cyan    neg gm add   stridoy mul  add
73 } def 
74
75 /someyellow {
76     
77     /gn     gm    1 add   def
78     /kmx    knx   1 sub   def
79     /kmy    kny   1 sub   def
80
81     /stridox  gridox  gn  div  def
82     /stridoy  gridoy  gn  div  def
83
84     /szix  stridox  margox sub  def
85     /sziy  stridoy  margoy sub  def
86
87     /stridix  szix  knx  div def
88     /stridiy  sziy  kny  div def
89
90     /szfx  stridix  margix sub  def
91     /szfy  stridiy  margiy sub  def
92
93     0 1 gm {            /cyan    exch def
94     0 1 kmy {           /blacky exch def
95
96     0 1 gm {            /magenta exch def
97     0 1 kmx {           /blackx  exch def
98
99     gsave
100         szfy setlinewidth
101         kentry_x kentry_y translate
102
103                 cyan            gn div
104                  magenta        gn div
105                  yellow         gn div
106                  klist_get maxval div
107
108                  setcmykcolor
109
110                 0  szfy +0.5 mul  moveto
111                 szfx 0 rlineto stroke
112
113       cyan 0 le  blacky 0 le and {  % top row
114           0  texty neg  translate
115           0 0 moveto
116           text_u
117       } if
118
119     grestore
120
121     } for
122     } for
123
124       gsave
125         0  kentry_y  translate
126         0 0 moveto
127         text_l
128       grestore
129
130     } for
131     } for
132
133     gsave
134       0  printareay texty sub  translate
135       0 0 moveto  text_ul
136     grestore
137
138 } def
139
140 /start_page {
141     margin margin translate
142 } def
143 start_page
144
145 /finish_page {
146     0 setgray
147
148     showpage
149     start_page
150 } def
151
152 /maxval 8 def
153
154
155
156 /gm 8 def
157
158 /knx 1 def
159 /kny 3 def
160
161 /klist [ 0 1 2 ] def
162 /ylist [ 0 1 2 3 5 8 11 15 ] def
163
164 /gridox szox def
165 /gridoy szoy def
166
167 /text_ul {
168     (Y) show
169     yellow (_) cvs show
170 } def
171
172 /text_cyan {
173     (C) show
174     cyan (_) cvs show
175 } def
176 /text_magenta {
177     (C) show
178     magenta (_) cvs show
179 } def
180
181 /text_l {
182     cyan 0 le {
183       gsave
184         0 texty rmoveto
185  (K) show
186       klist blacky get (_) cvs show
187        grestore
188     } if
189     blacky 0 le {
190         text_cyan
191     } if
192 } def
193 /text_u {
194     text_magenta
195 } def
196
197 /ranges {
198     0 1 gm {                    /yellow  exch def
199
200         /ytext { digits yellow get } def
201
202         someyellow
203
204     finish_page
205     } for
206 } def
207 ranges
208
209 /gm 4 def
210
211 /knx 2 def
212 /kny 1 def
213
214 /ranges2 {
215
216   /gridoy szoy 5 div margby 4 mul sub def
217
218   0 1 gm { /yellowy exch def
219
220     /yellow    yellowy maxval mul  gm div  def
221     /text_u_p  yellowy 1 ge  def
222     gsave
223       0
224         yellowy  gridoy margby add  mul
225         translate
226      someyellow
227     grestore
228   } for
229
230   finish_page
231
232 } def
233
234   /text_l_p true  def  
235
236 /klist [ 3 4 ] def  ranges2
237 /klist [ 6 8 ] def  /text_l_p false def  ranges2