]> git.donarmstrong.com Git - lilypond.git/blobdiff - tex/lily-ps-defs.tex
release: 1.0.1
[lilypond.git] / tex / lily-ps-defs.tex
index 92d9825afe4b35a6b99f419ec5cb10b6cb7e688d..7740d62496b6c4de9c193ac3e01bdfa5033eba9f 100644 (file)
 % transplant a TeX dimension into the PS output.
 \def\PSsetTeXdimen#1{\expandafter\special{! /#1 (\the\csname #1\endcsname) deftexdimen}}
 
-\def\turnOnPostScript{
+\def\turnOnPostScript{%
 \def\embeddedps##1{%
         % This sets CTM so that you get to the currentpoint
         % by executing a 0 0 moveto
         \special{ps: @beginspecial @setspecial ##1 @endspecial}       
 }
-
 %
 % width, slope, height 
 %
@@ -60,8 +59,7 @@ def
         def     
 } def
 }
-
-
+%
 \PSsetTeXdimen{staffrulethickness}
 \PSsetTeXdimen{staffheight}
 \special{! %
@@ -82,6 +80,7 @@ def
         bind def
         /draw_cresc
         {
+                staffrulethickness setlinewidth
                 /cresc_cont exch def
                 /cresc_ht exch def
                 /cresc_wd exch def
@@ -97,51 +96,139 @@ def
  /lily_distance {
         1 copy mul exch 1 copy mul add sqrt
  } bind def
- staffheight 2 div
- /slurhtlimit exch def
- /slurratio 0.3333 def
- %
- %  (b*ratio)/(1 + b / htlimit)
- /getslurcontrol 
- { 
-        slurhtlimit 90 div /slur_alpha exch def
-        slurratio 60 div slur_alpha div  /slur_beta  exch def
-        slur_beta mul 1 atan slur_alpha mul
- } bind def
- staffrulethickness 1.5 mul  /slur_thick exch def
- /draw_slur
- {
-        staffrulethickness setlinewidth
-        0 0 moveto
-        /slur_dir exch def
-        /slur_dy exch def
-        /slur_dx exch def
-        slur_dy slur_dx lily_distance /slur_b  exch def
-        slur_b getslurcontrol 
-        slur_dir mul /slur_ht exch def
-        slur_b getslurcontrol /slur_indent exch def       
-%
-        slur_dy slur_dx atan rotate
-        slur_indent slur_ht
-        slur_b slur_indent sub slur_ht
-        slur_b 0
-        rcurveto        
- %
-        slur_indent neg slur_ht slur_dir slur_thick mul  sub
-        slur_indent slur_b sub slur_ht slur_dir slur_thick mul  sub
-        slur_b neg  0
-        rcurveto
- %
-        gsave
-                fill
-        grestore
-        stroke
- } bind def}}
-
-
-
+staffrulethickness 1.2 mul /plet_t exch def
+/draw_plet
+{
+       plet_t setlinewidth
+       true setstrokeadjust
+       1 setlinecap
+       1 setlinejoin
+       /dir exch def
+       /plet_dy exch def
+       /plet_dx exch def
+       staffheight 2 div /plet_gapx exch def
+       plet_dy plet_dx div plet_gapx mul /plet_gapy exch def
+       staffheight 4 div dir mul /plet_h exch def
+%
+       0 0 moveto
+       0 plet_h lineto 
+       plet_dx plet_gapx sub 2 div 
+               plet_dy plet_gapy sub 2 div plet_h add lineto
+       plet_dx plet_gapx add 2 div 
+               plet_dy plet_gapy add 2 div plet_h add moveto
+       plet_dx plet_dy plet_h add lineto
+       plet_dx plet_dy lineto
+       stroke
+} bind def
+%
+/draw_slur
+{
+       staffrulethickness setlinewidth
+       moveto
+       curveto
+       lineto
+       curveto
+       gsave
+       fill
+       grestore
+       stroke
+} bind def
+%
+/draw_dashed_slur
+{
+       1 setlinecap
+       1 setlinejoin
+       setdash
+       setlinewidth
+       moveto
+       curveto
+       stroke
+} bind def
+%
+staffheight 4 div /interline exch def
+%
+/bracket_traject
+{
+  /traject_ds exch def
+  /traject_alpha exch def
+  traject_ds traject_alpha sin mul add
+  exch
+  traject_ds traject_alpha cos mul add
+  exch
+} bind def
+%
+% too fat for 20pt
+% interline 2 div /bracket_b exch def
+interline 3 div /bracket_b exch def
+interline 2 mul /bracket_w exch def
+staffrulethickness /stafflinethickness exch def
+stafflinethickness 2 mul /bracket_t exch def
+interline 1.5 mul /bracket_v exch def
+bracket_v /bracket_u exch def
+50 /bracket_alpha exch def
+%
+/half_bracket
+{
+%6
+       0 0
+%5a
+       bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
+       bracket_alpha bracket_v -0.15 mul bracket_traject
+%5b
+       1 bracket_h
+       0 bracket_v 0.5 mul bracket_traject
+%5c
+       0 bracket_h
+%4a
+       bracket_b bracket_h bracket_t sub
+       0 bracket_v 0.4 mul bracket_traject
+%4b
+       bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
+       bracket_alpha bracket_v -0.25 mul bracket_traject
+%4c
+       bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
+%3
+       bracket_b bracket_h bracket_t sub
+%2
+       bracket_b 0
+%1
+       0 0
+} bind def
+%
+/draw_half_bracket {
+       moveto
+       lineto
+       lineto
+       curveto
+       curveto
+       lineto
+       gsave
+       fill
+       grestore
+} bind def
+%
+/draw_bracket
+{
+       2 div bracket_b add /bracket_h exch def
+       bracket_t setlinewidth
+       true setstrokeadjust
+       1 setlinecap
+       1 setlinejoin
+       half_bracket
+       20 copy
+       1 -1 scale
+       draw_half_bracket
+       stroke
+       1 -1 scale
+% ugh, ugh:
+       0.05 0 translate
+       draw_half_bracket
+       stroke
+} bind def
+}}
 
-\def\turnOnExperimentalFeatures{
+\def\turnOnExperimentalFeatures{%
 % draw a slur in embedded postscript
 \special{ps:
 }}
+