summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurs2.eps
blob: 6a6b22473ed8d1f9dfc3464ed03d40fc2631c3e6 (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
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
%% LaTeX2e file `eps/kslurs2.eps'
%% generated by the `filecontents' environment
%% from source `pmxccn' on 2011/07/14.
%%
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
%%Title: kslurs2.dvi
%%CreationDate: Wed Jan 21 13:59:47 2004
%%Pages: 1
%%PageOrder: Ascend
%%BoundingBox: 28 734 312 782
%%DocumentFonts: TeXMUSIX16-Regular CMTT10
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE kslurs2.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource:  TeX output 2004.01.21:1359
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
N/FBB[0 0 0 0]N/nn 0 N/IE 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
/BitMaps X/BuildChar{CharBuilder}N/Encoding IE N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
/Rx X V}B/V{}B/RV statusdict begin/product where{pop false[(Display)
(NeXT)(LaserWriter 16/600)]{A length product length le{A length product
exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}
ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}
imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{
BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end

%%EndProcSet
%%BeginProcSet: psslurs.pro
% This file can be used instead of psslurs.pro, it is only commented
% and indented.
%
% VERSION: 1.0
%
% WARNING! This is a heavy magic! If you want something more understandable,
%   you will have to write it yourself (if it is possible in a stack-oriented
%   language that PostScript is). There are some constants you can
%   change and see what happens, but I think the slurs should be almost
%   always satisfiable. When not, let me know at:
%   standa@hiero.cz
%   Also any bug reports and comments are welcomed.
%
%         Stanislav Kneifl.

/slur@Dict 200 dict def

% this dictionary is for \setslurtext, overriding some dvips's definitions
/temp@xx@dict 4 dict def temp@xx@dict begin
 /a { moveto ax1 ay1 rmoveto } def
 /V {gsave newpath transform round exch round exch itransform
  exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
  rlineto rulex neg 0 rlineto fill grestore} def
end

TeXDict begin
% get dimen from TeX's string ("125pt" -> 125 PS points)
/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
% get dimen adjusted to Resolution
/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
% Adjust to Resolution
/AR { Resolution mul 300 div } def
%  the distances in dvips's PostScript are resolution dependant!
end

slur@Dict begin
/CP /currentpoint load def
/ED { exch def } bind def
/AR { Resolution mul 300 div } def  % stands for Adjust to Resolution,
/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
/M { mul } def
/A { add } def
/SB { sub } def
/P { pop } def
/DP { dup } def
/R { roll } def

/drawseg { 0 0 moveto
 ax1 ay1
  ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
  ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
 ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
  ax2 ay2
  x2 0 curveto } def

/DS {
 AR /maxe ED
 /ifadjust ED
 /ifdash ED
 AR /m ED         % max height of the slur
 /e ED            % "angularity" of the slur; 0.1 = very angular,
                          %   0.3 = very round
 /aa exch neg def       % what to multiply the height with
                          %   AFTER the max height checking
 /y2 ED           % y coordinate of the end of the slur
 /x2 ED           % x coordinate of the end of the slur
 /y1 ED           % y coordinate of the beginning of the slur
 /x1 ED           % x coordinate of the beginning of the slur
 /yr2 ED
 /yr1 ED
 /internote ED
 /x2 x2 x1 sub def      % x2=x2-x1
 /y2 y2 y1 sub def      % y2=y2-y1
 /sx y2 x2 div def
 /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
 b 3 AR lt {/b 3 AR def} if   % b=max(b,3)
 b m gt {/b m def} if     % b=min(b,m)
 /aa b aa mul def      % aa=aa*b
 /s 90 x2 y2 atan sub def   % s=90-arctan(x2,y2)   slope of the slur
 /aa aa s cos div def     % aa=aa/cos(s)   height of the slur
 /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
                 %  is the length of the slur
 e x2 mul maxe gt { /e maxe x2 div def } if
 /beta e x2 mul aa neg atan def
 beta 90 gt {/beta 180 beta sub def} if
 /ax1 e x2 mul def    % control points
 /ay1 aa def
 /ax2 1 e sub x2 mul def
 /ay2 aa def

% check if the starting and endin vector stay in desired quadrants
% => beta < abs(s)
 beta s abs lt {
  /b aa abs s abs 2 add sin mul s abs 2 add cos div def
  s aa mul 0 lt {
   s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
%              ^^^^                                 ^^^                                ^^^
% (values to play with)
   /ax2 x2 b sub def
  }
  {
   /ax1 b def
   s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
%              ^^^^                             ^^^                                    ^^^
  } ifelse
 } if

% align the slur to the staff lines

 gsave
 x1 y1 translate
 s rotate
% [1 0 sx 1 0 0] concat
 drawseg
 gsave
 initmatrix
 flattenpath
 pathbbox
 exch pop
 sub
 /slh ED            % in slh we have the height of the whole slur
 pop
 grestore

 /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
 /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
% check if the slur gets too close to staff line
 /shift 0 def
 slh 4.45 lt slh -0.5 gt and {
  /slh slh dup truncate sub def
  slh 0 lt { /slh 1 slh add def } if
  aa 0 gt { /slh 1 slh sub def } if

   % slh now contains the position ot the slur top/bottom in the space
   % between the nearest staff lines (from <0,1>), regardless direction

   % slur is too low:
  slh 0.45 lt { /shift 0.45 slh sub def } if
   % slur is too high, but we can be shift it down:
  slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
   % slur is too high, must be shifted up:
  slh 0.85 ge { /shift 1.45 slh sub def } if
 } if

 aa 0 gt { /shift shift neg def } if

 ifadjust 0 eq {
  /shift 0 def
 } if


% and finally draw it...

 grestore
 gsave
 /linew internote 0.06 mul AR def
 linew 4 mul setlinewidth
 1 setlinecap
 0 setlinejoin
 ifdash 1 eq
  { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
 x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
 s rotate
% [1 sx 0 1 0 0] concat

% uncomment this to see the control points
%  5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
%  ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth

 drawseg
 1 VS
 drawseg
 -2 VS
 drawseg
 x2 20 AR gt {
  3 VS
  drawseg
 } if
 x2 50 AR gt {
  -4 VS
  drawseg
 } if
 x2 80 AR gt {
  5 VS
  drawseg
 } if
 stroke

 grestore

 % now some \slurtext code...

 /x1 ax1 ax2 add 2 div def          % middle of the slur
 /y1 ay1 ay2 add 2 div def
 x1 s cos mul y1 s sin mul add neg
 y1 s cos mul x1 s sin mul sub
 aa 0 lt {1} {0} ifelse
 end

 % this is a hack to place the slurtext in the middle of the slur.
 % From unknown reasons simple 'ax1 ay1 translate' did not work,
 % so we have to overlay some definitions with our own, namely
 % 'a', which is originally 'moveto' and 'V' for drawing rules.
 % maybe there are some other operations that should be redefined,
 % but for almost all cases this will be sufficient. If you find
 % anything that won't be typeset at the correct position, let me know...

 temp@xx@dict begin
 /dir exch def
 /ay1 exch def
 /ax1 exch def
} def

% crescendos
/DC {
 /y2 ED
 /x2 ED
 /y1 ED
 /x1 ED
 gsave
 1 AR ceiling setlinewidth         % line thickness: this results
 1 setlinecap                      % to exactly 2 pixels in 300 dpi
 1 setlinejoin
 x2 y2 10 AR add moveto            % the 10's specify wideness of the
 x1 y1 lineto                      % open end of the crescendo,
 x2 y2 10 AR sub lineto            % similarly the 11's below
 stroke
 grestore
} def

% half crescendos
/DHC {
 /y2 ED
 /x2 ED
 /y1 ED
 /x1 ED
 gsave
 1 AR ceiling setlinewidth
 1 setlinecap
 1 setlinejoin
 x2 y2 11 AR add moveto
 x1 y1 4 AR add lineto stroke
 x1 y1 4 AR sub moveto
 x2 y2 11 AR sub lineto
 stroke
 grestore
} def

% differenced line

/DLN {
 gsave
 GDAR ceiling setlinewidth
 GDAR exch GDAR neg rlineto
 stroke
 grestore
} def

% sloped line

/DSLN {
 gsave
 GDAR ceiling setlinewidth
 GDAR exch 1.125 mul neg rotate 0 rlineto
 stroke
 grestore
} def

% free line (init & terminate)

/DFLN {
 gsave
 GDAR ceiling setlinewidth
 CP moveto
 lineto
 stroke
 grestore
} def

end


%%EndProcSet
%%BeginProcSet: texps.pro
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{
dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1
roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def
dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}
if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}
def end

%%EndProcSet
%%BeginProcSet: special.pro
%!
TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
{userdict/md get type/dicttype eq{userdict begin md length 10 add md
maxlength ge{/md md dup length 20 add dict copy def}if end md begin
/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
save N userdict maxlength dict begin/magscale true def normalscale
currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{
psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict
begin/SpecialSave save N gsave normalscale currentpoint TR
@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{
CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N
/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end}
repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N
/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
1 startangle endangle arc savematrix setmatrix}N end

%%EndProcSet
%%BeginFont: CMTT10
%!PS-AdobeFont-1.1: CMTT10 1.00B
%%CreationDate: 1992 Apr 26 10:42:42
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 72 /H put
dup 102 /f put
dup 104 /h put
dup 115 /s put
readonly def
/FontBBox{-4 -235 731 800}readonly def
/UniqueID 5000832 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
BA304FA879392EE0BCC1A6ADAB001EDF5C9D6FE45735098A304A8BD4A0AC9980
7FFE62FEAD3843EF8C45E1203E303D028897CFE1D4D0AB8BBA74CE279275A67E
81AEA417A3E49397386B7304DC9247290A5CE2408114441EDD82F9B3A8E49C4D
D9745142652BE8B82C2A9610B26EA1A71212CE97781A06B58C3DDD9179016AB6
740166FF986AE856AFDD2D8955D95B2D0C57BC179F1D9136BEFBB6F17E8DE96E
921502FB19F0C21F0A491F951D83972DECD70AA8987112F05C939A6FB073A5EA
495069A1DDF11DC589D2E91C1514C2799C5B954EB8B347918C4920C7142A2AC6
8231DD2AF57E9540C46BDA6AAC09689487F5E0EB021CADA860FD25B2E5230259
7BFF0F12D7DF5CE219716715073177028CE276FC313D6A101898D1A6BB0AD8D5
662A85EE6B921A72E46589CC08EA87EECFDF36B819B07306C44AC3FBCD134930
4B2F9EC4D5C57518E8210FC2C61DA3FD185CFA65DF3DB858BCF75E95321A7131
547E0C854068826FAB1D8A48A3708F6B3AA1DE3502DDFE91A553D31ACB26D732
FD54BD83E3C485032A061769D33F2D8BD8AF3E5EB9BC7BE18F5EB7A440C673D6
25151DBC12F033A1D5D20EBF8530E7129D0A90AD3EA1E185EB58B12472AF22F9
8DC999EED472B2C2B85B60A09D6A2D42E04AD651074A7FB8EEAD846888F72410
59A99B49ACFC71131694C405F36C8F710B467AB3742C6EE007FE240976397D06
E1E409013769EC79E2F70C1A9B84991F3AAE219469E3F323439BF51726A76F60
DC410D411CDA75C4C5C7864FA957AAFEEA79FEC8CF95A53326E328A8F446C415
10A842D5DFFA8223B034B62B87A7B6BF4FEBD03132F9075C271F205407839CE1
CCE65AFD00A134F3C357C1E7666BA9F121A12E2B9BB63F2814EED3E56A6B66D1
8B2C866622030FA1AA10AE103A4E9244C9687E2356B635DCBA342CDF976583AC
E27BE925C57585CA0FF2FBAA5169551AE362F31CEFB8F71A4FFFAF0D97924631
A3D3F22E8B3A54268D8D742FA1F23ED4B73390654FB4E132B615FF0A0798ED0B
7DA27D8116AEF3E3326774FA5C0662104B61BA54D437030951984A98A1D0A6D7
6F3DFD8899BEBA630DB1DF819C7CAD4C243AAC157F3BC44A9582DA059DC13828
4A25265D6AA0407F9B9EB6DB87FF4FEED5B6A109FE0521D3BF720F8446D9C758
36C279F20E294F7974C7A8E63ACA1B534AE8C1B517013FC03B940095E021CEE1
2FE7C094AA23B7B5BC016BC5E8BF9EB96DC6F4ECFA90685D740F92D22D5E1D5F
4CF3474831AFF202A57C89D89BA25869483CCC82F3D1B1B364DC66897BAFEE2E
EF3154F6D65F7553E4F6EA6D376E579F119B12882419C5EA85A8707DBC1E87CC
8D563899C7632E24A53CA5D050588B9A889ED7EDD347C7D98381D44C1A5823D4
F171B3D6DA586C6C545DB2294CDEE0CD36D898318B57FE9B4CA514FA43AE584A
6033CD7DE353A2D119B825AA7517D9687BDD1E438E90A849054A4EBA890F3A00
0C7A13B16FAEEF6D31110E5310BB27C428498D4578E660265AAB30CA156E16F0
0A43A6EC0A5496B850A53B8018EB965453AB3758D31F9F7DE6C93F655EA57DF6
E87B08DF568D8B9034F1C4FCDD6B73C552D1DEB9605768CDBFC4028F42373682
D2F7E60386F7368C5BE8BDEC5D5B29D060BA790A3A33FD3778646A2518FC97DE
EDE030EC4FD3CACB08D58379AF1FB31DB2F2814BE34141E339C14A0D4BDE8A7C
C4D79C6257C9898492659F421469939DB3BBE9AF9A95F632701C5C53482A2B18
806DB57A3085D6F407D97881B3888EA65929493B03590BC9423F317A18FDCB85
849406F24E59B41F673AFB499B5253CAC1A4F52E45F572DADB137DA541574771
811A68701B81CC369EBEAC00F4D2AFF2C5EC3597FDBE3558AAC4397A55C65EEA
C0A0FC545BECB36595B387282424B32782F3B738191DBD0B4B11E377E798F743
2EE0EE0A8AB2F27A69C049A254BCBD7CEC8AAE2EFF3DC7BFD908E1DC382E5F69
542EF247D4543527927D23592B07D41EB441D93F42A7ABE61742E0BB8F75EDC6
777721AD2F40D9FE781F97E685E1ACA482DEEEC783AB1F87178DCEEACF6E74BE
D597199B
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: TeXMUSIX16-Regular
%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
%%CreationDate: 01-07-25 at 04.07
%%VMusage: 1024 36138
% Generated by Fontographer 4.1.4
% converted using TeXtrace 0.45 and modified by T. Uchiyama
% ADL: 701 299 0
%%EndComments
FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
{save true}{false}ifelse}{false}ifelse
20 dict begin
/FontInfo 16 dict dup begin
/version (001.000) readonly def
/FullName (TeXMUSIX16-Regular) readonly def
/FamilyName (TeXMUSIX16) readonly def
/Weight (Regular) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
/em 1000 def
/ascent 701 def
/descent 299 def
end readonly def
/FontName /TeXMUSIX16-Regular def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 7 /caron put
dup 8 /breve put
dup 71 /G put
readonly def
/PaintType 0 def
/FontType 1 def
/StrokeWidth 0 def
/FontMatrix[0.001 0 0 0.001 0 0]readonly def
%/UniqueID 0 def
/FontBBox{-620 -2059 4000 2062}readonly def
currentdict end
currentfile eexec
D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
4205FDFF83287B2C762EFD151232F1E1B856941A07C76AD4A6030971385C9614
AF82D00B6895EE8090AE00C2AABDB1D374E9C0317A2F09AC4177697BF63E3627
D9EBBE30E9D146E27FC0ADC8AE7C3D7A1991AD1D243A9D862E4F268136DA3550
8230C17ED70FD1763C8D45041B6E46171F7F37B395304CE44CE0077B6AD46D53
5F8BDDE09732958D00A2B463F8F609FE3D6B20EBFA30AAC3ECCBF6039C8E9EEF
2023730F8DC41E7BCC26F26F01B717D07F34A5472635CDE17185A14FE17F1D42
45D5D51CCD4DF7C5E27D97FED25E5C3E0D90B4363736DF9490104B3C4E24D571
2A1D512B35D5072ADB70DA4C0C58261A83EC38C301D68187A6C8497D27712CDA
0BAE303A69CD15C4E1D4541864355B74EACBBA7B5DC82CD0C4D85DCBF2CBA386
E1E7D76EBF80FA169BC5BA62AC0D08FF48E2E17BB4301C9081B2FB58C506D896
9A5860BAF45AA28F4BFABA3E4E34A688FCADEBBE28BFEAEB9C92B9FBF241A834
2F8BB3CB5DEED85D1A13048D43CDDB439A27F6E6DB485B4FA7F3CD358D9B9BCD
60A1B71FAED11AAECB95800DE4D3AFDDE2B7D45A98B048DDBA9448F4B17168C4
E030962D21DB9753BFA5305CBD00123401CF7FF018A5EC990600148CEE8555BD
B6332D422923CF2116FD5F0ABD8BEA064E9FBD98DF2C16890920AFC6475947FA
579F700AF7EF9DF8D64C05FD70B998CB12FFCE033A4A4DE938DDB27E8F887FDE
B6C927FFF339F501C7A1A141F10A439B7E4F16FEACC6CCDDBEFAE73137C2A479
D1164C40D2DA5F1E48AD08A67339DD054356204ADFEC881E4469E9F64A660B84
0F341C95F3987B198DB8F5E801CA2D420E52C1D727BB16A516485F5609968622
A0E0367DA9F8AE81FFDFFDA8991BA220F0E25BC0E6FEE87BE5C52D5323388F93
3F1108D74468D3D4B8F9041C564626D9CBFDC221D39147F89806A60ADBEC556C
C1D5A3E5628366B2B5C4DF96306501624260FB31D93C88FEC1987D07C53FE45A
02EEDB8CCD1B2BF4B1F9E8C52E7CD13137EAC87A59E873A011458E604A181A20
307772346FC959B5B700C14916245B1EDEDA
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark{restore}if
%%EndFont
TeXDict begin 39158280 55380996 1000 600 600 (kslurs2.dvi)
@start /Fa 140[44 10[44 1[44 29[44 72[{}4 83.022 /CMTT10
rf /Fb 184[106 62[0 0 7[{}3 132.835 /TeXMUSIX16-Regular
rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%PaperSize: A4
 end
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
31 V -364 64 V -364 98 V -364 63 a Fb(G)-159 89 y
 slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
 -159
89 a -182 295 a Fa(s)p -144 63 4 117 v -182 63 a Fb(\007)p
-6 98 4 135 v 80 63 a
 slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
 80 63 a 80 63 a
 end
 80 63 a 60 295
a Fa(s)p 98 63 4 117 v 60 63 a Fb(\007)260 89 y
 slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
 260 89
a 236 295 a Fa(sf)p 275 63 4 117 v 237 63 a Fb(\007)p
413 98 4 135 v 498 63 a
 slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
 498 63 a 498 63 a
 end
 498 63 a 478
295 a Fa(s)p 517 63 4 117 v 479 63 a Fb(\007)678 89 y
 slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end

678 89 a 655 295 a Fa(sh)p 693 63 4 117 v 655 63 a Fb(\007)p
831 98 4 135 v 917 63 a
 slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
 917 63 a 917 63 a
 end
 917 63 a 897
295 a Fa(s)p 935 63 4 117 v 897 63 a Fb(\007)1096 89
y
 slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
 1096 89 a 1073 295 a Fa(shh)p 1111 63 4 117 v 1073
63 a Fb(\007)p 1249 98 4 135 v 1335 63 a
 slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
 1335 63 a 1335
63 a
 end
 1335 63 a 1315 295 a Fa(s)p 1353 63 4 117 v 1315
63 a Fb(\007)1514 89 y
 slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
 1514 89 a 1491 295 a Fa(sHH)p
1529 63 4 117 v 1491 63 a Fb(\007)p 1668 98 4 135 v 1753
63 a
 slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 2.8 S0dir M 0.13 40 S0dash
S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
 1753 63 a 1753 63 a
 end
 1753 63 a 1771 63 4 117 v -20
w Fb(\010)p 1982 98 4 135 v 1986 262 a
 slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
 1986 262 a eop
end
%%Trailer

userdict /end-hook known{end-hook}if
%%EOF