summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs1.eps
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs1.eps')
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs1.eps1242
1 files changed, 621 insertions, 621 deletions
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs1.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs1.eps
index 6f1007568a6..77e730766f4 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs1.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs1.eps
@@ -1,621 +1,621 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: slurs1.dvi
-%%CreationDate: Sun Feb 16 23:12:52 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 732 312 782
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE slurs1
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.16:2312
-%%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: 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/UniqueXX known{dup
-/UniqueXX 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
-dup 7 /caron 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
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a38035445d474093f766c24c5313c8269b552f59
-46defaa7cff5565d8d532c284799723d41ace1e6098ebde8bec237eb1e25b986
-4fefafbb9fd4f5945b94afa052c23b7e023d36e353cab0f5ae26f1603f207abb
-27b75db8d49cec9f91a24d2c9102be3125e5731d080117b87572ee5937499568
-66acb8003649e0506ad1c706bfcba57819046893f5a1853ae36a13e4e32a0cfb
-24a64cb984b29a4fa2b7a4318774bf15b184929e985df6096af5ecfe240ef1d1
-451641876fb92999d45254627de73c12eaa146815e7da76fac8a61c3ee1ee342
-544828a9fa391ac5eba0d8dc4b2f346d8546a6b7fae0348857f2b759d98f5be8
-6b0a6efe9d65a36bd3329a6ae97b87fffaf353698939b8ef2137381a06214522
-d512ce8060f157fe1ff39e0f206430988080053509262695a03e14a1a3c16548
-e481edae2b3cb313ce693acdcd7391fe8564d467193cc671f473d3d698f3b6c5
-4fa54ae29c4d5cdee894f10253001fa20eb28d04d484fb214fc98836008b96d4
-68fce98605e98e3484af1676af6892e7976ad47230cbc2ec1317a1a063e93a86
-06ed021ee92b2acb9dc66a3ed0d2c6931dbf803e99de4b6a5e5d5122fc9e3311
-a7d74c6022f1e9c3867b761be445f10c7e0e8bc53e741e4eed7dad89005bd20d
-42818f1f0c18738b47520b2bc23ee693516f4bddc8c00062219b0a65a9cae139
-fe89b92664803946ce736bdf8b2f4a52768f348fe415890537180f21ef048afb
-198aaeb28e7009c3a3ddbf27d0d2078a354536795f6783f803312a3202a59d4b
-6353634df3f36cb0b48282e5896d17ddf8d8495cd949e59c09bea3de4c4c5c2e
-e1fe80c10e798796bbcb3807e05828fff5bf5d05f8edfe942b2129c15a786cb1
-503158a69a36bcc2b5f5b4f5449490b245a0693550ec99a9c876357380e7
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/slurs1.dvi) @start
-%DVIPSBitmapFont: Fa cmtt10 10 5
-/Fa 5 105 df<13E01201EA0380EA0700120E5AA25AA25AA35AA91270A37EA27EA27E7E
-EA0380EA01E012000B217A9C16>40 D<12C07E12707E7E7EA27EA2EA0380A3EA01C0A9EA
-0380A3EA0700A2120EA25A5A5A5A5A0A217B9C16>I<387F07F038FF8FF8387F07F0381C
-01C0A7EA1FFFA3EA1C01A9387F07F038FF8FF8387F07F01519809816>72
-D<131E137F3801FF8013C7380383001380A2EA7FFFB5FCA2EA0380ACEA7FFC487E6C5A11
-197F9816>102 D<12FCA3121CA41378EA1DFCEA1FFE130FEA1E07121CAA38FF8FE0139F
-138F13197F9816>104 D E
-%EndDVIPSBitmapFont
-/Fb 184[53 63[0 7[{}2 66.4176 /TeXMUSIX16-Regular rf
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
-V -182 49 V -182 31 a Fb(G)-77 61 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) 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
- -77 61 a -89 148
-a Fa(\()22 b(\))p -70 48 2 59 v -89 48 a Fb(\007)15 31
-y
- 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
- 15 31 a 15 31 a
- end
- 15 31 a 24 31 2 59 v -10 w Fb(\007)p
-99 49 2 68 v 146 61 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) 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
- 146 61 a 134 148 a Fa(\(f)f(\))p
-153 48 2 59 v 134 48 a Fb(\007)238 31 y
- 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
- 238 31 a 238
-31 a
- end
- 238 31 a 247 31 2 59 v -10 w Fb(\007)p 322 49 2
-68 v 369 61 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) 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
- 369 61 a 357 148 a Fa(\(h)g(\))p 376 48
-2 59 v 357 48 a Fb(\007)461 31 y
- 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
- 461 31 a 461 31 a
- end
- 461
-31 a 470 31 2 59 v -10 w Fb(\007)p 545 49 2 68 v 592
-61 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) 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
- 592 61 a 580 148 a Fa(\(hh)g(\))p 599 48 2 59 v
-580 48 a Fb(\007)684 31 y
- 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
- 684 31 a 684 31 a
- end
- 684 31 a
-693 31 2 59 v -10 w Fb(\007)p 768 49 2 68 v 815 61 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) 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
-
-815 61 a 803 148 a Fa(\(HH)g(\))p 822 48 2 59 v 803 48
-a Fb(\007)907 31 y
- 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
- 907 31 a 907 31 a
- end
- 907 31 a 916 31
-2 59 v -10 w Fb(\007)p 991 49 2 68 v 993 131 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 993 131
-a eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: slurs1.dvi
+%%CreationDate: Sun Feb 16 23:12:52 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 732 312 782
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE slurs1
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.16:2312
+%%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: 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/UniqueXX known{dup
+/UniqueXX 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
+dup 7 /caron 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
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a38035445d474093f766c24c5313c8269b552f59
+46defaa7cff5565d8d532c284799723d41ace1e6098ebde8bec237eb1e25b986
+4fefafbb9fd4f5945b94afa052c23b7e023d36e353cab0f5ae26f1603f207abb
+27b75db8d49cec9f91a24d2c9102be3125e5731d080117b87572ee5937499568
+66acb8003649e0506ad1c706bfcba57819046893f5a1853ae36a13e4e32a0cfb
+24a64cb984b29a4fa2b7a4318774bf15b184929e985df6096af5ecfe240ef1d1
+451641876fb92999d45254627de73c12eaa146815e7da76fac8a61c3ee1ee342
+544828a9fa391ac5eba0d8dc4b2f346d8546a6b7fae0348857f2b759d98f5be8
+6b0a6efe9d65a36bd3329a6ae97b87fffaf353698939b8ef2137381a06214522
+d512ce8060f157fe1ff39e0f206430988080053509262695a03e14a1a3c16548
+e481edae2b3cb313ce693acdcd7391fe8564d467193cc671f473d3d698f3b6c5
+4fa54ae29c4d5cdee894f10253001fa20eb28d04d484fb214fc98836008b96d4
+68fce98605e98e3484af1676af6892e7976ad47230cbc2ec1317a1a063e93a86
+06ed021ee92b2acb9dc66a3ed0d2c6931dbf803e99de4b6a5e5d5122fc9e3311
+a7d74c6022f1e9c3867b761be445f10c7e0e8bc53e741e4eed7dad89005bd20d
+42818f1f0c18738b47520b2bc23ee693516f4bddc8c00062219b0a65a9cae139
+fe89b92664803946ce736bdf8b2f4a52768f348fe415890537180f21ef048afb
+198aaeb28e7009c3a3ddbf27d0d2078a354536795f6783f803312a3202a59d4b
+6353634df3f36cb0b48282e5896d17ddf8d8495cd949e59c09bea3de4c4c5c2e
+e1fe80c10e798796bbcb3807e05828fff5bf5d05f8edfe942b2129c15a786cb1
+503158a69a36bcc2b5f5b4f5449490b245a0693550ec99a9c876357380e7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/slurs1.dvi) @start
+%DVIPSBitmapFont: Fa cmtt10 10 5
+/Fa 5 105 df<13E01201EA0380EA0700120E5AA25AA25AA35AA91270A37EA27EA27E7E
+EA0380EA01E012000B217A9C16>40 D<12C07E12707E7E7EA27EA2EA0380A3EA01C0A9EA
+0380A3EA0700A2120EA25A5A5A5A5A0A217B9C16>I<387F07F038FF8FF8387F07F0381C
+01C0A7EA1FFFA3EA1C01A9387F07F038FF8FF8387F07F01519809816>72
+D<131E137F3801FF8013C7380383001380A2EA7FFFB5FCA2EA0380ACEA7FFC487E6C5A11
+197F9816>102 D<12FCA3121CA41378EA1DFCEA1FFE130FEA1E07121CAA38FF8FE0139F
+138F13197F9816>104 D E
+%EndDVIPSBitmapFont
+/Fb 184[53 63[0 7[{}2 66.4176 /TeXMUSIX16-Regular rf
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
+V -182 49 V -182 31 a Fb(G)-77 61 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) 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
+ -77 61 a -89 148
+a Fa(\()22 b(\))p -70 48 2 59 v -89 48 a Fb(\007)15 31
+y
+ 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
+ 15 31 a 15 31 a
+ end
+ 15 31 a 24 31 2 59 v -10 w Fb(\007)p
+99 49 2 68 v 146 61 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) 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
+ 146 61 a 134 148 a Fa(\(f)f(\))p
+153 48 2 59 v 134 48 a Fb(\007)238 31 y
+ 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
+ 238 31 a 238
+31 a
+ end
+ 238 31 a 247 31 2 59 v -10 w Fb(\007)p 322 49 2
+68 v 369 61 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) 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
+ 369 61 a 357 148 a Fa(\(h)g(\))p 376 48
+2 59 v 357 48 a Fb(\007)461 31 y
+ 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
+ 461 31 a 461 31 a
+ end
+ 461
+31 a 470 31 2 59 v -10 w Fb(\007)p 545 49 2 68 v 592
+61 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) 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
+ 592 61 a 580 148 a Fa(\(hh)g(\))p 599 48 2 59 v
+580 48 a Fb(\007)684 31 y
+ 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
+ 684 31 a 684 31 a
+ end
+ 684 31 a
+693 31 2 59 v -10 w Fb(\007)p 768 49 2 68 v 815 61 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) 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
+
+815 61 a 803 148 a Fa(\(HH)g(\))p 822 48 2 59 v 803 48
+a Fb(\007)907 31 y
+ 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
+ 907 31 a 907 31 a
+ end
+ 907 31 a 916 31
+2 59 v -10 w Fb(\007)p 991 49 2 68 v 993 131 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 993 131
+a eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF