summaryrefslogtreecommitdiff
path: root/support/lametex/page/page_dagger.ps
blob: 4449dcddc3c361ba905c962015c745933bbff629 (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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
%! page_dagger.ps    - A dagger on a standard rectangular 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 normal page with a dagger in the middle for LameTeX output to look like
%% LaTeX output

%% Use this in conjunction with dagger.ps!

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

/DaggerBox
{
  xlm xrm xlm sub .9 mul add ybm moveto
  xlm xrm xlm sub 4 div add ybm ytm ybm sub .4 mul add lineto
  xlm xrm xlm sub 6 div add ybm ytm ybm sub .45 mul add lineto
  xlm ytm lineto xlm xrm xlm sub .2 mul add ytm lineto
  xlm xrm xlm sub .5 mul add ybm ytm ybm sub .85 mul add lineto
  xlm xrm xlm sub .8 mul add ybm ytm ybm sub .8 mul add lineto
  xlm xrm xlm sub .7 mul add ybm ytm ybm sub .6 mul add lineto
  xrm ybm lineto
  closepath
} bind def

%% REQUIRED DEFINITIONS START HERE %%

% Makes a path that desribes the page
/PageShape
{
  /xlm xlm .6 mul 3 in add def /xrm xrm .6 mul 3 in add def
  /ybm ybm .6 mul 2 in add def /ytm ytm .6 mul 2 in add def
  DaggerBox  % gsave stroke grestore  % Uncomment me to show the margin path
% gsave stroke grestore
  currentflat 8 mul
} bind def

% Anything to do when a new page is started
/StartPage
{
  % I enclose this huge definition here for a very good reason!
  % This is because this routine is called in-between PostScript
  % save and restore commands and therefore all this memory I'm
  % wasting here will be cleaned up.

%!The MIT Assassin's Guild Dagger, 8/13/87 by Jonathan Monsarrat
%% Yes, I really did do this entirely by hand, not with a drawing program!
%% Comment: There are no comments. Why: What would I say? left hilt,
%% middle bump near the right side of the blade right next to
%% the shiny part?
/dag1 {newpath 408 9 moveto
390 18 383 27 376 40 curveto
374.25 43.25 368 50 361 53 curveto
357.5 54.5 353 62 350 72 curveto
344 92 340 93 334 98 curveto
322 108 313 112 308 115 curveto
303 118 300 120 298 126 curveto
296 132 294 134 289 139 curveto
279 149 277 148 275 156 curveto
271 172 265 176 261 182 curveto
257 188 253 203 250 213 curveto
248.5 218 247 222 244 228 curveto
241 234 233 268 229 283 curveto
227 290.5 225 302 220 307 curveto
217.5 309.5 210 330 208 337 curveto
202 358 199 361 192 366 curveto
188.5 368.5 184 372 182 376 curveto
181 378 180 380 177 382 curveto
171 386 160 400 140 433 curveto
137.5 437 134 443 130 441 curveto
126 437 118 408 119 401 curveto
120 394 125 392 130 391 curveto
140 389 143 387 130 382 curveto
123.5 379.5 118 373 109 372 curveto
106 367 101 367 98 375 curveto
97 374 91 373 88 372 curveto
82 370 80 375 87 379 curveto
90.5 381 83 388 79 391 curveto
59 406 60 436 63 451 curveto
66 466 68 468 72 472 curveto
75 480 89 504 92 515 curveto
93.5 520.5 93 521 90 526 curveto
84 536 83 554 86 565 curveto
89 576 82 578 80 582 curveto
66 610 67 605 69 615 curveto
70 620 70 627 69 629 curveto
68 631 67 631 68 632 curveto
69 633 63 637 62 638 curveto
50 646 52 648 51 650 curveto
36 680 39 695 29 704 curveto
0 731 17 775 24 784 curveto
27.5 788.5 42 792 46 796 curveto
50 800 58 802 63 801 curveto
83 797 94 789 97 775 curveto
100 761 87 753 86 770 curveto
85 787 83 789 71 788 curveto
65 787 62 786 61 784 curveto
59 780 59 779 52 778 curveto
38 776 31 764 32 750 curveto
33 745 35 756 37 755 curveto
41 753 40 740 39 732 curveto
45 718 57 719 61 734 curveto
66 753 70 748 91 751 curveto
94.5 751.5 97 752 100 756 curveto
103 760 110 760 111 752 curveto
112 744 113 742 118 737 curveto
123 732 128 720 129 712 curveto
130 704 133 702 140 697 curveto
147 692 152 682 155 667 curveto
158 652 161 650 171 641 curveto
176 635.5 177 637 176 634 curveto} def

/dag2 {175 631 178 627 181 621 curveto
184 615 183 611 177 615 curveto
183 599 188 600 185 606 curveto
184 608 190 609 192 604 curveto
228 627 233 631 234 636 curveto
234.5 638.5 240 638 242 637 curveto
244 636 253 636 260 642 curveto
267 648 294 649 304 644 curveto
314 639 328 622 322 609 curveto
316 596 312 580 297 571 curveto 307 570 lineto
289 541 283 540 279 554 curveto
275 568 276 577 280 586 curveto
282 590.5 283 593 278 591 curveto
268 587 254 565 251 551 curveto
250 546 249 538 239 536 curveto
229 534 225 530 228 509 curveto
229 502 230 500 242 480 curveto
232 492 230 491 236 473 curveto
249 451 280 395 297 370 curveto
305.5 357.5 313 332 309 316 curveto
305 300 329 238 327 226 curveto
325 214 328 210 331 203 curveto
334 196 345 188 348 178 curveto
349 175 350 168 363 161 curveto
367 159 371 158 369 147 curveto
367 136 375 132 380 127 curveto
395 112 408 78 405 62 curveto
402 58 412 28 419 23 curveto
422.5 20.5 420 12 416 10 curveto
414 9 406 8 408 9 curveto closepath} def

/dag3 {1 setgray 382 73 moveto
377 102 368 110 353 126 curveto
348 130 342 150 331 153 curveto
323 155 311 170 305 184 curveto
299 198 290 210 285 241 curveto
280 272 265 270 258 329 curveto
257 340 250 349 238 362 curveto
226 375 227 379 226 389 curveto
225 399 225 407 219 410 curveto
213 413 199 422 159 480 curveto
152 490 151 500 167 512 curveto
199 536 209 537 210 528 curveto
211 519 220 474 245 444 curveto
255 432 243 432 251 420 curveto
259 408 265 392 278 387 curveto 283 372 lineto
295 348 296 354 293 310 curveto
292 295 292 277 300 267 curveto
304 262 305 257 308 245 curveto
318 197 326 174 361 139 curveto
385 115 392 93 390 75 curveto
388 57 385.5 58.5 382 73 curveto} def

/dag4 {368 60 moveto
360 65 351 84 349 93 curveto
347 102 340 115 303 148 curveto
295 155 290 163 284 181 curveto
278 199 239 298 238 314 curveto
237.5 322 228 325 225 327 curveto
222 329 219 335 218 339 curveto
214 355 195 378 187 388 curveto
185 390 187 400 153 442 curveto
136 463 157 463 163 453 curveto
166 448 175 442 180 434 curveto
235 346 252 333 253.5 313 curveto
255 293 255 275 269 248 curveto
270.5 245 277 241 281 223 curveto
285 214 293 180 302 168 curveto
320 144 325 139 335 128 curveto
355 110 361 97 371 62 curveto
372 57 376 55 368 60 curveto} def

/dag5 {82 426 moveto
81 440 87 452 92 462 curveto
89.5 467 100 469 96 477 curveto
92 485 101 511 149 555 curveto
147 557 154 564 147 566 curveto
144 566 143 567 143 572 curveto
144 574 144 575 140 573 curveto
136 571 135 578 141 582 curveto
139 594 142 597 159 608 curveto
167.5 613.5 171 610 172 604 curveto
170 598 175 592 173 585 curveto
171 580 179 575 181 582 curveto
183 589 191 599 205 600 curveto
208 601 210 603 211 610 curveto
232 620 240 629 243 630 curveto
241 621 257 628 266 635 curveto
275 642 282 637 281 625 curveto
280 617 277 612 252 594 curveto
244 588 239 573 235 555 curveto
233 546 232 540 225 539 curveto
221.5 538 218 549 220 558 curveto
221 561 218 565 189 547 curveto
174 538 174 538 173 531 curveto
172 524 164 522 151 520 curveto
144.5 519 142 516 141 511 curveto
141 510 142 509 138 505 curveto
134 501 134 498 138 487 curveto
139 484 140 475 139 471 curveto
139 470 124 468 120 453 curveto
118 445 120 440 112 433 curveto
104 426 103 421 102 412 curveto
101 403 94 404 93 410 curveto
92 416 83 412 82 426 curveto} def

/dag6 {99 567 moveto
97 577 99 583 104 590 curveto
114 604 120 616 139 632 curveto
144 636 148 637 147 639 curveto
146 641 140 640 111 617 curveto
106 613 100 607 94 593 curveto
91 586 87 588 84 596 curveto
81 604 82 609 83 618 curveto
85 636 85 641 79 640 curveto
73 639 69 642 72 656 curveto
73.5 663 72 670 71 677 curveto
70 684 79 694 91 697 curveto
90 703 93 707 100 708 curveto
107 709 109 709 109 698 curveto
109 691 112 690 116 700 curveto
122 715 114 720 111 720 curveto
110 720 105 715 100 712 curveto
80 700 72 702 70 692 curveto
62 715 69 731 80 738 curveto
98 749.5 106 743 119 720 curveto
125 710 126 701 130 700 curveto
134 699 136 693 129 691 curveto 123 687 lineto
110 680 105 672 99 658 curveto
96 651 101 643 104 650 curveto
107 657 109 657 111 658 curveto
113 659 117 657 119 662 curveto
125 670 127 673 125 680 curveto
137 690 141 689 142 678 curveto
143 667 143 659 149 653 curveto
155 647 152 640 160 639 curveto
168 638 170 630 171 625 curveto
160 625 155 622 162 620 curveto
152 612 150 610 131 593 curveto
127 590 126 585 130 580 curveto
134 575 132 565 120 560 curveto
114 557.5 110 551 105 558 curveto
100 565 101 557 99 567 curveto
} def

/dagger {dag1 dag2 fill dag3 fill dag4 fill dag5 fill dag6 fill} def

gsave
  3 in 2 in translate .6 .6 scale dagger
  dag1 dag2 closepath
  pathbbox /ytm exch def /xrm exch def /ybm exch def /xlm exch def
grestore
} 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 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.