Arrows
Appearance
The standard way to create an arrow is to combine a line with an arrow-head glyph.
However the line and the glyph will not follow the same scale when the global-staff-size changes.
Here's a markup function that helps create ready-to-use arrows without this problem.
The syntax is \arrow #'type #'fletching #'axis #'direction #'length #'boldness.
Example (at default global-staff-size):
\markup{
\scale #'(1.8 . 1.8) \arrow #"open" ##f #Y #UP #3 #0.14
}
gives the same output as
\markup{
\combine \fontsize #5 \arrow-head #Y #UP ##f
\override #'(thickness . 2.4) \draw-line #'(0 . -5.4)
}
The arrows below are shown with optimal boldness (the one each arrow type was designed for).
\version "2.24.0"
%% http://lsr.di.unimi.it/LSR/Item?id=1026
%% see also http://lsr.di.unimi.it/LSR/Item?id=650
%% Credits PPS on Feb. 2016
%%%% Snippet start here:
%%% "arrows.ily %%%
#(define-markup-command
(arrow layout props
type ;; "open" "close" "huron" "long" "large" "wings" "relief"
fletching? ;; #t or #f
axis ;; X or Y
direction ;; RIGHT or LEFT, UP or DOWN,
a-length ;; any number >= #0
boldness) ;; #0 < any number < #1
(string? boolean? ly:dir? ly:dir? number? number?)
"Draw arrows with variable length & boldness."
(define fletching #t)
(interpret-markup layout props
(cond
;; "open" optimal thickness #0.14
((and (string=? type "open")(and (eq? axis X)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(curveto -0.4 0.0 -0.7 0.18 -0.94 0.44)
(moveto 0.0 0.0)
(curveto -0.4 0.0 -0.7 -0.18 -0.94 -0.44)
(moveto 0.0 0.0)
(lineto ,(+ (* a-length -1) 1) 0)
(rmoveto 1.44 0.0)
(rcurveto -0.4 0.0 -0.7 0.18 -0.94 0.44)
(rmoveto 0.94 -0.44)
(rcurveto -0.4 0.0 -0.7 -0.18 -0.94 -0.44)
(rmoveto 0.44 0.44)
(rcurveto -0.4 0.0 -0.7 0.18 -0.94 0.44)
(rmoveto 0.94 -0.44)
(rcurveto -0.4 0.0 -0.7 -0.18 -0.94 -0.44)
(rmoveto 0.44 0.44)
(rcurveto -0.4 0.0 -0.7 0.18 -0.94 0.44)
(rmoveto 0.94 -0.44)
(rcurveto -0.4 0.0 -0.7 -0.18 -0.94 -0.44)
(rmoveto 0.44 0.44)
(rcurveto -0.4 0.0 -0.7 0.18 -0.94 0.44)
(rmoveto 0.94 -0.44)
(rcurveto -0.4 0.0 -0.7 -0.18 -0.94 -0.44)))))
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(curveto -0.4 0.0 -0.7 0.18 -0.94 0.44)
(moveto 0.0 0.0)
(curveto -0.4 0.0 -0.7 -0.18 -0.94 -0.44)
(moveto 0.0 0.0)
(lineto ,(* a-length -1) 0)))))))
((and (string=? type "open")(and (eq? axis X)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(curveto 0.4 0.0 0.7 0.18 0.94 0.44)
(moveto 0.0 0.0)
(curveto 0.4 0.0 0.7 -0.18 0.94 -0.44)
(moveto 0.0 0.0)
(lineto ,(- a-length 1) 0)
(rmoveto -1.44 0.0)
(rcurveto 0.4 0.0 0.7 0.18 0.94 0.44)
(rmoveto -0.94 -0.44)
(rcurveto 0.4 0.0 0.7 -0.18 0.94 -0.44)
(rmoveto -0.44 0.44)
(rcurveto 0.4 0.0 0.7 0.18 0.94 0.44)
(rmoveto -0.94 -0.44)
(rcurveto 0.4 0.0 0.7 -0.18 0.94 -0.44)
(rmoveto -0.44 0.44)
(rcurveto 0.4 0.0 0.7 0.18 0.94 0.44)
(rmoveto -0.94 -0.44)
(rcurveto 0.4 0.0 0.7 -0.18 0.94 -0.44)
(rmoveto -0.44 0.44)
(rcurveto 0.4 0.0 0.7 0.18 0.94 0.44)
(rmoveto -0.94 -0.44)
(rcurveto 0.4 0.0 0.7 -0.18 0.94 -0.44)))))
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(curveto 0.4 0.0 0.7 0.18 0.94 0.44)
(moveto 0.0 0.0)
(curveto 0.4 0.0 0.7 -0.18 0.94 -0.44)
(moveto 0.0 0.0)
(lineto ,a-length 0)))))))
((and (string=? type "open")(and (eq? axis Y)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(curveto 0.0 -0.4 0.18 -0.7 0.44 -0.94)
(moveto 0.0 0.0)
(curveto 0.0 -0.4 -0.18 -0.7 -0.44 -0.94)
(moveto 0.0 0.0)
(lineto 0.0 ,(+ (* a-length -1) 1))
(rmoveto 0.0 1.44)
(rcurveto 0.0 -0.4 0.18 -0.7 0.44 -0.94)
(rmoveto -0.44 0.94)
(rcurveto 0.0 -0.4 -0.18 -0.7 -0.44 -0.94)
(rmoveto 0.44 0.44)
(rcurveto 0.0 -0.4 0.18 -0.7 0.44 -0.94)
(rmoveto -0.44 0.94)
(rcurveto 0.0 -0.4 -0.18 -0.7 -0.44 -0.94)
(rmoveto 0.44 0.44)
(rcurveto 0.0 -0.4 0.18 -0.7 0.44 -0.94)
(rmoveto -0.44 0.94)
(rcurveto 0.0 -0.4 -0.18 -0.7 -0.44 -0.94)
(rmoveto 0.44 0.44)
(rcurveto 0.0 -0.4 0.18 -0.7 0.44 -0.94)
(rmoveto -0.44 0.94)
(rcurveto 0.0 -0.4 -0.18 -0.7 -0.44 -0.94)))))
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(curveto 0.0 -0.4 0.18 -0.7 0.44 -0.94)
(moveto 0.0 0.0)
(curveto 0.0 -0.4 -0.18 -0.7 -0.44 -0.94)
(moveto 0.0 0.0)
(lineto 0.0 ,(* a-length -1))))))))
((and (string=? type "open")(and (eq? axis Y)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(curveto 0.0 0.4 0.18 0.7 0.44 0.94)
(moveto 0.0 0.0)
(curveto 0.0 0.4 -0.18 0.7 -0.44 0.94)
(moveto 0.0 0.0)
(lineto 0.0 ,(- a-length 1))
(rmoveto 0.0 -1.44)
(rcurveto 0.0 0.4 0.18 0.7 0.44 0.94)
(rmoveto -0.44 -0.94)
(rcurveto 0.0 0.4 -0.18 0.7 -0.44 0.94)
(rmoveto 0.44 -0.44)
(rcurveto 0.0 0.4 0.18 0.7 0.44 0.94)
(rmoveto -0.44 -0.94)
(rcurveto 0.0 0.4 -0.18 0.7 -0.44 0.94)
(rmoveto 0.44 -0.44)
(rcurveto 0.0 0.4 0.18 0.7 0.44 0.94)
(rmoveto -0.44 -0.94)
(rcurveto 0.0 0.4 -0.18 0.7 -0.44 0.94)
(rmoveto 0.44 -0.44)
(rcurveto 0.0 0.4 0.18 0.7 0.44 0.94)
(rmoveto -0.44 -0.94)
(rcurveto 0.0 0.4 -0.18 0.7 -0.44 0.94)))))
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(curveto 0.0 0.4 0.18 0.7 0.44 0.94)
(moveto 0.0 0.0)
(curveto 0.0 0.4 -0.18 0.7 -0.44 0.94)
(moveto 0.0 0.0)
(lineto 0.0 ,a-length)))))))
;; "close" optimal thickness #0.14
((and (string=? type "closed")(and (eq? axis X)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(curveto -0.06 0.00 -0.55 -0.07 -0.97 -0.47)
(curveto -0.99 -0.38 -0.92 -0.20 -0.92 -0.02)
(lineto ,(+ (* a-length -1) 3.03) -0.02)
(rcurveto -0.06 0.00 -0.55 -0.07 -0.97 -0.48)
(rlineto -2.03 0.00)
(rcurveto 0.14 0.14 0.48 0.41 0.95 0.50)
(rcurveto -0.06 0.00 -0.55 0.07 -0.95 0.50)
(rlineto 2.03 0.00)
(rcurveto 0.14 -0.14 0.48 -0.41 0.95 -0.48)
(lineto ,(+ (* a-length -1) 3.03) 0.02)
(lineto -0.92 0.02)
(curveto -0.92 0.20 -0.99 0.38 -0.97 0.47)
(curveto -0.55 0.07 -0.06 0.00 0.00 0.00)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(curveto -0.06 0.00 -0.55 -0.07 -0.97 -0.47)
(curveto -0.99 -0.38 -0.92 -0.20 -0.92 -0.02)
(lineto ,(* a-length -1) -0.02)
(lineto ,(* a-length -1) 0.02)
(lineto -0.92 0.02)
(curveto -0.92 0.20 -0.99 0.38 -0.97 0.47)
(curveto -0.55 0.07 -0.06 0.00 0.00 0.00)))))))
((and (string=? type "closed")(and (eq? axis X)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(curveto 0.06 0.00 0.55 -0.07 0.97 -0.47)
(curveto 0.99 -0.38 0.92 -0.20 0.92 -0.02)
(lineto ,(- a-length 3.03) -0.02)
(rcurveto 0.06 0.00 0.55 -0.07 0.97 -0.48)
(rlineto 2.03 0.00)
(rcurveto -0.14 0.14 -0.48 0.41 -0.95 0.50)
(rcurveto 0.06 0.00 0.55 0.07 0.95 0.50)
(rlineto -2.03 0.00)
(rcurveto -0.14 -0.14 -0.48 -0.41 -0.95 -0.48)
(lineto ,(- a-length 3.03) 0.02)
(lineto 0.92 0.02)
(curveto 0.92 0.20 0.99 0.38 0.97 0.47)
(curveto 0.55 0.07 0.06 0.00 0.00 0.00)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(curveto 0.06 0.00 0.55 -0.07 0.97 -0.47)
(curveto 0.99 -0.38 0.92 -0.20 0.92 -0.02)
(lineto ,a-length -0.02)
(lineto ,a-length 0.02)
(lineto 0.92 0.02)
(curveto 0.92 0.20 0.99 0.38 0.97 0.47)
(curveto 0.55 0.07 0.06 0.00 0.00 0.00)))))))
((and (string=? type "closed")(and (eq? axis Y)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(curveto 0.00 -0.06 -0.07 -0.55 -0.47 -0.97)
(curveto -0.38 -0.99 -0.20 -0.92 -0.02 -0.92)
(lineto -0.02 ,(+ (* a-length -1) 3.03))
(rcurveto 0.00 -0.06 -0.07 -0.55 -0.48 -0.97)
(rlineto 0.00 -2.03)
(rcurveto 0.14 0.14 0.41 0.48 0.50 0.95 )
(rcurveto 0.00 -0.06 0.07 -0.55 0.50 -0.95)
(rlineto 0.00 2.03)
(rcurveto -0.14 0.14 -0.41 0.48 -0.48 0.95)
(lineto 0.02 ,(+ (* a-length -1) 3.03))
(lineto 0.02 -0.92)
(curveto 0.20 -0.92 0.38 -0.99 0.47 -0.97)
(curveto 0.07 -0.55 0.00 -0.06 0.00 0.00)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(curveto 0.00 -0.06 -0.07 -0.55 -0.47 -0.97)
(curveto -0.38 -0.99 -0.20 -0.92 -0.02 -0.92)
(lineto -0.02 ,(* a-length -1))
(lineto 0.02 ,(* a-length -1))
(lineto 0.02 -0.92 )
(curveto 0.20 -0.92 0.38 -0.99 0.47 -0.97)
(curveto 0.07 -0.55 0.00 -0.06 0.00 0.00)))))))
((and (string=? type "closed")(and (eq? axis Y)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(curveto 0.00 0.06 -0.07 0.55 -0.47 0.97)
(curveto -0.38 0.99 -0.20 0.92 -0.02 0.92)
(lineto -0.02 ,(- a-length 3.03))
(rcurveto 0.00 0.06 -0.07 0.55 -0.48 0.97)
(rlineto 0.00 2.03)
(rcurveto 0.14 -0.14 0.41 -0.48 0.50 -0.95 )
(rcurveto 0.00 0.06 0.07 0.55 0.50 0.95)
(rlineto 0.00 -2.03)
(rcurveto -0.14 -0.14 -0.41 -0.48 -0.48 -0.95)
(lineto 0.02 ,(- a-length 3.03))
(lineto 0.02 0.92 )
(curveto 0.20 0.92 0.38 0.99 0.47 0.97)
(curveto 0.07 0.55 0.00 0.06 0.00 0.00)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(curveto 0.00 0.06 -0.07 0.55 -0.47 0.97)
(curveto -0.38 0.99 -0.20 0.92 -0.02 0.92)
(lineto -0.02 ,a-length)
(lineto 0.02 ,a-length)
(lineto 0.02 0.92 )
(curveto 0.20 0.92 0.38 0.99 0.47 0.97)
(curveto 0.07 0.55 0.00 0.06 0.00 0.00)))))))
;; "huron" optimal thickness #0.15
((and (string=? type "huron")(and (eq? axis X)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(lineto -0.6 -0.5)
(moveto 0.0 0.0)
(lineto -0.6 0.5)
(moveto 0.0 0.0)
(lineto ,(+ (* a-length -1) 0.6) 0)
(rmoveto 1.6 0.0)
(rlineto -0.6 -0.5)
(rmoveto 0.6 0.5)
(rlineto -0.6 0.5)
(rmoveto 0.2 -0.5)
(rlineto -0.6 -0.5)
(rmoveto 0.6 0.5)
(rlineto -0.6 0.5)
(rmoveto 0.2 -0.5)
(rlineto -0.6 -0.5)
(rmoveto 0.6 0.5)
(rlineto -0.6 0.5)
(rmoveto 0.2 -0.5)
(rlineto -0.6 -0.5)
(rmoveto 0.6 0.5)
(rlineto -0.6 0.5)
(rmoveto 0.2 -0.5)
(rlineto -0.6 -0.5)
(rmoveto 0.6 0.5)
(rlineto -0.6 0.5)))))
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(lineto -0.6 -0.5)
(moveto 0.0 0.0)
(lineto -0.6 0.5)
(moveto 0.0 0.0)
(lineto ,(* a-length -1) 0)))))))
((and (string=? type "huron")(and (eq? axis X)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(lineto 0.6 -0.5)
(moveto 0.0 0.0)
(lineto 0.6 0.5)
(moveto 0.0 0.0)
(lineto ,(- a-length 0.6) 0)
(rmoveto -1.6 0.0)
(rlineto 0.6 -0.5)
(rmoveto -0.6 0.5)
(rlineto 0.6 0.5)
(rmoveto -0.2 -0.5)
(rlineto 0.6 -0.5)
(rmoveto -0.6 0.5)
(rlineto 0.6 0.5)
(rmoveto -0.2 -0.5)
(rlineto 0.6 -0.5)
(rmoveto -0.6 0.5)
(rlineto 0.6 0.5)
(rmoveto -0.2 -0.5)
(rlineto 0.6 -0.5)
(rmoveto -0.6 0.5)
(rlineto 0.6 0.5)
(rmoveto -0.2 -0.5)
(rlineto 0.6 -0.5)
(rmoveto -0.6 0.5)
(rlineto 0.6 0.5)))))
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(lineto 0.6 -0.5)
(moveto 0.0 0.0)
(lineto 0.6 0.5)
(moveto 0.0 0.0)
(lineto ,a-length 0)))))))
((and (string=? type "huron")(and (eq? axis Y)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(lineto -0.5 -0.6)
(moveto 0.0 0.0)
(lineto 0.5 -0.6)
(moveto 0.0 0.0)
(lineto 0.0 ,(+ (* a-length -1) 0.6))
(rmoveto 0.0 1.6)
(rlineto -0.5 -0.6)
(rmoveto 0.5 0.6)
(rlineto 0.5 -0.6)
(rmoveto -0.5 0.2)
(rlineto -0.5 -0.6)
(rmoveto 0.5 0.6)
(rlineto 0.5 -0.6)
(rmoveto -0.5 0.2)
(rlineto -0.5 -0.6)
(rmoveto 0.5 0.6)
(rlineto 0.5 -0.6)
(rmoveto -0.5 0.2)
(rlineto -0.5 -0.6)
(rmoveto 0.5 0.6)
(rlineto 0.5 -0.6)
(rmoveto -0.5 0.2)
(rlineto -0.5 -0.6)
(rmoveto 0.5 0.6)
(rlineto 0.5 -0.6)))))
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(lineto -0.5 -0.6)
(moveto 0.0 0.0)
(lineto 0.5 -0.6)
(moveto 0.0 0.0)
(lineto 0.0 ,(* a-length -1))))))))
((and (string=? type "huron")(and (eq? axis Y)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(lineto -0.5 0.6)
(moveto 0.0 0.0)
(lineto 0.5 0.6)
(moveto 0.0 0.0)
(lineto 0.0 ,(- a-length 0.6))
(rmoveto 0.0 -1.6)
(rlineto -0.5 0.6)
(rmoveto 0.5 -0.6)
(rlineto 0.5 0.6)
(rmoveto -0.5 -0.2)
(rlineto -0.5 0.6)
(rmoveto 0.5 -0.6)
(rlineto 0.5 0.6)
(rmoveto -0.5 -0.2)
(rlineto -0.5 0.6)
(rmoveto 0.5 -0.6)
(rlineto 0.5 0.6)
(rmoveto -0.5 -0.2)
(rlineto -0.5 0.6)
(rmoveto 0.5 -0.6)
(rlineto 0.5 0.6)
(rmoveto -0.5 -0.2)
(rlineto -0.5 0.6)
(rmoveto 0.5 -0.6)
(rlineto 0.5 0.6)))))
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.0 0.0)
(lineto -0.5 0.6)
(moveto 0.0 0.0)
(lineto 0.5 0.6)
(moveto 0.0 0.0)
(lineto 0.0 ,a-length)))))))
;; "long" optimal thickness #0.07
((and (string=? type "long")(and (eq? axis X)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(lineto -2.50 -0.60)
(curveto -2.40 -0.40 -2.35 -0.15 -2.35 -0.05)
(lineto ,(* (- a-length 2.40) -1) -0.05)
(rlineto -0.30 -0.55)
(rlineto -2.10 0.00)
(rlineto 0.30 0.60)
(rlineto -0.30 0.60)
(rlineto 2.10 0.00)
(rlineto 0.30 -0.55)
(lineto ,(* (- a-length 2.40) -1) 0.05)
(lineto -2.35 0.05)
(curveto -2.35 0.10 -2.40 0.40 -2.50 0.60)
(lineto 0.00 0.00)
(closepath)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto -2.50 -0.60)
(curveto -2.40 -0.40 -2.35 -0.15 -2.35 -0.05)
(lineto ,(* a-length -1) -0.05)
(lineto ,(* a-length -1) 0.05)
(lineto -2.35 0.05)
(curveto -2.35 0.10 -2.40 0.40 -2.50 0.60)
(lineto 0.00 0.00)
(closepath)))))))
((and (string=? type "long")(and (eq? axis X)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto 2.50 -0.60)
(curveto 2.40 -0.40 2.35 -0.15 2.35 -0.05)
(lineto ,(- a-length 2.40) -0.05)
(rlineto 0.30 -0.55)
(rlineto 2.10 0.00)
(rlineto -0.30 0.60)
(rlineto 0.30 0.60)
(rlineto -2.10 0.00)
(rlineto -0.30 -0.55)
(lineto ,(- a-length 2.40) 0.05)
(lineto 2.35 0.05)
(curveto 2.35 0.10 2.40 0.40 2.50 0.60)
(lineto 0.00 0.00)
(closepath)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto 2.50 -0.60)
(curveto 2.40 -0.40 2.35 -0.15 2.35 -0.05)
(lineto ,a-length -0.05)
(lineto ,a-length 0.05)
(lineto 2.35 0.05)
(curveto 2.35 0.10 2.40 0.40 2.50 0.60)
(lineto 0.00 0.00)
(closepath)))))))
((and (string=? type "long")(and (eq? axis Y)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto -0.60 -2.50)
(curveto -0.40 -2.40 -0.15 -2.35 -0.05 -2.35)
(lineto -0.05 ,(+ (* a-length -1) 2.40))
(rlineto -0.55 -0.30)
(rlineto 0.00 -2.10)
(rlineto 0.60 0.30)
(rlineto 0.60 -0.30)
(rlineto 0.00 2.10)
(rlineto -0.55 0.30)
(lineto 0.05 ,(+ (* a-length -1) 2.40))
(lineto 0.05 -2.35)
(curveto 0.10 -2.35 0.40 -2.40 0.60 -2.50)
(lineto 0.00 0.00)
(closepath)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto -0.60 -2.50)
(curveto -0.40 -2.40 -0.15 -2.35 -0.05 -2.35)
(lineto -0.05 ,(* a-length -1))
(lineto 0.05 ,(* a-length -1))
(lineto 0.05 -2.35)
(curveto 0.10 -2.35 0.40 -2.40 0.60 -2.50)
(lineto 0.00 0.00)
(closepath)))))))
((and (string=? type "long")(and (eq? axis Y)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto -0.60 2.50)
(curveto -0.40 2.40 -0.15 2.35 -0.05 2.35)
(lineto -0.05 ,(- a-length 2.40))
(rlineto -0.55 0.30)
(rlineto 0.00 2.10)
(rlineto 0.60 -0.30)
(rlineto 0.60 0.30)
(rlineto 0.00 -2.10)
(rlineto -0.55 -0.30)
(lineto 0.05 ,(- a-length 2.40))
(lineto 0.05 2.35)
(curveto 0.10 2.35 0.40 2.40 0.60 2.50)
(lineto 0.00 0.00)
(closepath)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto -0.60 2.50)
(curveto -0.40 2.40 -0.15 2.35 -0.05 2.35)
(lineto -0.05 ,a-length)
(lineto 0.05 ,a-length)
(lineto 0.05 2.35)
(curveto 0.10 2.35 0.40 2.40 0.60 2.50)
(lineto 0.00 0.00)
(closepath)))))))
;; "large" optimal thickness #0.07
((and (string=? type "large")(and (eq? axis X)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(lineto -1.5 2.0)
(lineto -1.5 1.0)
(lineto ,(* a-length -1) 1.5)
(rlineto 1.0 -1.5)
(rlineto -1.0 -1.5)
(lineto ,(* a-length -1) -1.5)
(lineto -1.5 -1.0)
(lineto -1.5 -2.0)
(lineto 0.0 0.0)
(closepath)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(lineto -1.5 2.0)
(lineto -1.5 1.0)
(lineto ,(* a-length -1) 1.5)
(lineto ,(* a-length -1) -1.5)
(lineto -1.5 -1.0)
(lineto -1.5 -2.0)
(lineto 0.0 0.0)
(closepath)))))))
((and (string=? type "large")(and (eq? axis X)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(lineto 1.5 2.0)
(lineto 1.5 1.0)
(lineto ,a-length 1.5)
(rlineto -1.0 -1.5)
(rlineto 1.0 -1.5)
(lineto ,a-length -1.5)
(lineto 1.5 -1.0)
(lineto 1.5 -2.0)
(lineto 0.0 0.0)
(closepath)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(lineto 1.5 2.0)
(lineto 1.5 1.0)
(lineto ,a-length 1.5)
(lineto ,a-length -1.5)
(lineto 1.5 -1.0)
(lineto 1.5 -2.0)
(lineto 0.0 0.0)
(closepath)))))))
((and (string=? type "large")(and (eq? axis Y)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(lineto 2.0 -1.5)
(lineto 1.0 -1.5)
(lineto 1.5 ,(* a-length -1))
(rlineto -1.5 1.0)
(rlineto -1.5 -1.0)
(lineto -1.5 ,(* a-length -1))
(lineto -1.0 -1.5)
(lineto -2.0 -1.5)
(lineto 0.0 0.0)
(closepath)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(lineto 2.0 -1.5)
(lineto 1.0 -1.5)
(lineto 1.5 ,(* a-length -1))
(lineto -1.5 ,(* a-length -1))
(lineto -1.0 -1.5)
(lineto -2.0 -1.5)
(lineto 0.0 0.0)
(closepath)))))))
((and (string=? type "large")(and (eq? axis Y)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(lineto 2.0 1.5)
(lineto 1.0 1.5)
(lineto 1.5 ,a-length)
(rlineto -1.5 -1.0)
(rlineto -1.5 1.0)
(lineto -1.5 ,a-length)
(lineto -1.0 1.5)
(lineto -2.0 1.5)
(lineto 0.0 0.0)
(closepath)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.0 0.0)
(lineto 2.0 1.5)
(lineto 1.0 1.5)
(lineto 1.5 ,a-length)
(lineto -1.5 ,a-length)
(lineto -1.0 1.5)
(lineto -2.0 1.5)
(lineto 0.0 0.0)
(closepath)))))))
;; "wings" optimal thickness #0.1
((and (string=? type "wings")(and (eq? axis X)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.00 0.00)
(lineto -1.40 1.40)
(lineto -2.00 1.40)
(lineto -0.87 0.23)
(lineto ,(* (- a-length 3.88) -1) 0.22)
(lineto ,(* (- a-length 2.80) -1) 1.40)
(lineto ,(* (- a-length 2.20) -1) 1.40)
(lineto ,(* (- a-length 3.40) -1) 0.00)
(lineto ,(* (- a-length 2.20) -1) -1.40)
(lineto ,(* (- a-length 2.80) -1) -1.40)
(lineto ,(* (- a-length 3.88) -1) -0.22)
(lineto ,(* (- a-length 3.88) -1) -0.22)
(lineto -0.87 -0.22)
(lineto -2.0 -1.40)
(lineto -1.40 -1.40)
(closepath)
(moveto ,(* (- a-length 2.90) -1) 0.00)
(rlineto -1.20 1.40)
(rlineto -0.60 0.00)
(rlineto 1.20 -1.40)
(rlineto -1.20 -1.40)
(rlineto 0.60 0.00)
(rlineto 1.20 1.40)
(rmoveto -1.10 0.00)
(rlineto -1.20 1.40)
(rlineto -0.60 0.00)
(rlineto 1.20 -1.40)
(rlineto -1.20 -1.40)
(rlineto 0.60 0.00)
(rlineto 1.20 1.40)
(closepath)))))
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.00 0.00)
(lineto -1.40 1.40)
(lineto -2.00 1.40)
(lineto -0.87 0.23)
(lineto ,(* a-length -1) 0.22)
(lineto ,(* a-length -1) -0.22)
(lineto -0.87 -0.22)
(lineto -2.00 -1.40)
(lineto -1.40 -1.40)
(closepath)))))))
((and (string=? type "wings")(and (eq? axis X)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto -0.00 0.00)
(lineto 1.40 1.40)
(lineto 2.00 1.40)
(lineto 0.87 0.23)
(lineto ,(- a-length 3.88) 0.22)
(lineto ,(- a-length 2.80) 1.40)
(lineto ,(- a-length 2.20) 1.40)
(lineto ,(- a-length 3.40) 0.00)
(lineto ,(- a-length 2.20) -1.40)
(lineto ,(- a-length 2.80) -1.40)
(lineto ,(- a-length 3.88) -0.22)
(lineto ,(- a-length 3.88) -0.22)
(lineto 0.87 -0.22)
(lineto 2.0 -1.40)
(lineto 1.40 -1.40)
(closepath)
(moveto ,(- a-length 2.90) 0.00)
(rlineto 1.20 1.40)
(rlineto 0.60 0.00)
(rlineto -1.20 -1.40)
(rlineto 1.20 -1.40)
(rlineto -0.60 0.00)
(rlineto -1.20 1.40)
(rmoveto 1.10 0.00)
(rlineto 1.20 1.40)
(rlineto 0.60 0.00)
(rlineto -1.20 -1.40)
(rlineto 1.20 -1.40)
(rlineto -0.60 0.00)
(rlineto -1.20 1.40)
(closepath)))))
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.00 0.00)
(lineto 1.40 1.40)
(lineto 2.00 1.40)
(lineto 0.87 0.23)
(lineto ,a-length 0.22)
(lineto ,a-length -0.22)
(lineto 0.87 -0.22)
(lineto 2.00 -1.40)
(lineto 1.40 -1.40)
(closepath)))))))
((and (string=? type "wings")(and (eq? axis Y)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.00 0.00)
(lineto 1.40 -1.40)
(lineto 1.40 -2.00)
(lineto 0.23 -0.87)
(lineto 0.22 ,(* (- a-length 3.88) -1))
(lineto 1.40 ,(* (- a-length 2.80) -1))
(lineto 1.40 ,(* (- a-length 2.20) -1))
(lineto 0.00 ,(* (- a-length 3.40) -1))
(lineto -1.40 ,(* (- a-length 2.20) -1))
(lineto -1.40 ,(* (- a-length 2.80) -1))
(lineto -0.22 ,(* (- a-length 3.88) -1))
(lineto -0.22 ,(* (- a-length 3.88) -1))
(lineto -0.22 -0.87)
(lineto -1.40 -2.0)
(lineto -1.40 -1.40)
(closepath)
(moveto 0.00 ,(* (- a-length 2.90) -1))
(rlineto 1.40 -1.20)
(rlineto 0.00 -0.60)
(rlineto -1.40 1.20)
(rlineto -1.40 -1.20)
(rlineto 0.00 0.60)
(rlineto 1.40 1.20)
(rmoveto 0.00 -1.10)
(rlineto 1.40 -1.20)
(rlineto 0.00 -0.60)
(rlineto -1.40 1.20)
(rlineto -1.40 -1.20)
(rlineto 0.00 0.60)
(rlineto 1.40 1.20)
(closepath)))))
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.00 0.00)
(lineto 1.40 -1.40)
(lineto 1.40 -2.00)
(lineto 0.23 -0.87)
(lineto 0.22 ,(* a-length -1))
(lineto -0.22 ,(* a-length -1))
(lineto -0.22 -0.87)
(lineto -1.40 -2.00)
(lineto -1.40 -1.40)
(closepath)))))))
((and (string=? type "wings")(and (eq? axis Y)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.00 0.00)
(lineto 1.40 1.40)
(lineto 1.40 2.00)
(lineto 0.23 0.87)
(lineto 0.22 ,(- a-length 3.88))
(lineto 1.40 ,(- a-length 2.80))
(lineto 1.40 ,(- a-length 2.20))
(lineto 0.00 ,(- a-length 3.40))
(lineto -1.40 ,(- a-length 2.20))
(lineto -1.40 ,(- a-length 2.80))
(lineto -0.22 ,(- a-length 3.88))
(lineto -0.22 ,(- a-length 3.88))
(lineto -0.22 0.87)
(lineto -1.40 2.00)
(lineto -1.40 1.40)
(closepath)
(moveto 0.00 ,(- a-length 2.90))
(rlineto 1.40 1.20)
(rlineto 0.00 0.60)
(rlineto -1.40 -1.20)
(rlineto -1.40 1.20)
(rlineto 0.00 -0.60)
(rlineto 1.40 -1.20)
(rmoveto 0.00 1.10)
(rlineto 1.40 1.20)
(rlineto 0.00 0.60)
(rlineto -1.40 -1.20)
(rlineto -1.40 1.20)
(rlineto 0.00 -0.60)
(rlineto 1.40 -1.20)
(closepath)))))
(markup
(#:override (cons (quote filled) #f)
(#:path boldness
`((moveto 0.00 0.00)
(lineto 1.40 1.40)
(lineto 1.40 2.00)
(lineto 0.23 0.87)
(lineto 0.22 ,a-length)
(lineto -0.22 ,a-length)
(lineto -0.22 0.87)
(lineto -1.40 2.00)
(lineto -1.40 1.40)
(closepath)))))))
;; "relief" optimal thickness #0.01
((and (string=? type "relief")(and (eq? axis X)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto -3.00 1.00)
(lineto -1.50 0.00)
(lineto -2.15 0.00)
(curveto -2.15 -0.15 -2.30 -0.15 -2.30 -0.15)
(lineto -3.00 -1.00)
(lineto -1.50 0.00)
(closepath)
(lineto -3.00 -1.00)
(lineto 0.00 0.00)
(closepath)
(moveto -2.00 0.00)
(lineto ,(* (- a-length 0.30) -1) 0.00)
(lineto ,(* (- a-length 0.30) -1) 0.15)
(rlineto 0.70 0.00)
(rlineto -1.00 0.85)
(rlineto 0.50 -0.85)
(rlineto -0.50 0.85)
(rlineto 2.50 0.00)
(rlineto 1.00 -0.85)
(lineto -2.30 0.15)
(lineto -3.00 1.00)
(lineto -2.30 0.15)
(curveto -2.20 0.15 -2.15 0.10 -2.15 0.00)
(closepath)
(moveto -2.30 -0.15)
(lineto ,(* (- a-length 0.30) -1) -0.15)
(lineto ,(* (- a-length 0.30) -1) 0.00)
(lineto ,(* (- a-length 0.30) -1) -0.15)
(rmoveto 0.70 0.00)
(rlineto -1.00 -0.85)
(rlineto 0.50 0.85)
(rlineto 0.50 0.00)
(rmoveto -1.00 -0.85)
(rlineto 2.50 0.00)
(rlineto 1.00 0.85)
(rlineto -1.00 -0.85)
(closepath)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto -3.00 1.00)
(lineto -1.50 0.00)
(lineto -2.15 0.00)
(curveto -2.15 -0.15 -2.30 -0.15 -2.30 -0.15)
(lineto -3.00 -1.00)
(lineto -1.50 0.00)
(closepath)
(lineto -3.00 -1.00)
(lineto 0.00 0.00)
(closepath)
(moveto -2.00 0.00)
(lineto ,(* (- a-length 0.30) -1) 0.00)
(lineto ,(* (- a-length 0.30) -1) 0.15)
(lineto -2.30 0.15)
(lineto -3.00 1.00)
(lineto -2.30 0.15)
(curveto -2.20 0.15 -2.15 0.10 -2.15 0.00)
(closepath)
(moveto -2.30 -0.15)
(lineto ,(* (- a-length 0.30) -1) -0.15)
(lineto ,(* (- a-length 0.30) -1) 0.00)
(lineto ,(* (- a-length 0.30) -1) -0.15)
(closepath)))))))
((and (string=? type "relief")(and (eq? axis X)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto 3.00 1.00)
(lineto 1.50 0.00)
(lineto 2.15 0.00)
(curveto 2.15 -0.15 2.30 -0.15 2.30 -0.15)
(lineto 3.00 -1.00)
(lineto 1.50 0.00)
(closepath)
(lineto 3.00 -1.00)
(lineto 0.00 0.00)
(closepath)
(moveto 2.00 0.00)
(lineto ,(- a-length 0.30) 0.00)
(lineto ,(- a-length 0.30) 0.15)
(rlineto -0.70 0.00)
(rlineto 1.00 0.85)
(rlineto -0.50 -0.85)
(rlineto 0.50 0.85)
(rlineto -2.50 0.00)
(rlineto -1.00 -0.85)
(lineto 2.30 0.15)
(lineto 3.00 1.00)
(lineto 2.30 0.15)
(curveto 2.20 0.15 2.15 0.10 2.15 0.00)
(closepath)
(moveto 2.30 -0.15)
(lineto ,(- a-length 0.30) -0.15)
(lineto ,(- a-length 0.30) 0.00)
(lineto ,(- a-length 0.30) -0.15)
(rmoveto -0.70 0.00)
(rlineto 1.00 -0.85)
(rlineto -0.50 0.85)
(rlineto -0.50 0.00)
(rmoveto 1.00 -0.85)
(rlineto -2.50 0.00)
(rlineto -1.00 0.85)
(rlineto 1.00 -0.85)
(closepath)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto 3.00 1.00)
(lineto 1.50 0.00)
(lineto 2.15 0.00)
(curveto 2.15 -0.15 2.30 -0.15 2.30 -0.15)
(lineto 3.00 -1.00)
(lineto 1.50 0.00)
(closepath)
(lineto 3.00 -1.00)
(lineto 0.00 0.00)
(closepath)
(moveto 2.00 0.00)
(lineto ,a-length 0.00)
(lineto ,a-length 0.15)
(lineto 2.30 0.15)
(lineto 3.00 1.00)
(lineto 2.30 0.15)
(curveto 2.20 0.15 2.15 0.10 2.15 0.00)
(closepath)
(moveto 2.30 -0.15)
(lineto ,a-length -0.15)
(lineto ,a-length 0.00)
(lineto ,a-length -0.15)
(closepath)))))))
((and (string=? type "relief")(and (eq? axis Y)(eq? direction 1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto 1.00 -3.00)
(lineto 0.00 -1.50)
(lineto 0.00 -2.15)
(curveto -0.15 -2.15 -0.15 -2.30 -0.15 -2.30)
(lineto -1.00 -3.00)
(lineto 0.00 -1.50)
(closepath)
(lineto -1.00 -3.00)
(lineto 0.00 0.00)
(closepath)
(moveto 0.00 -2.00)
(lineto 0.00 ,(* (- a-length 0.30) -1))
(lineto 0.15 ,(* (- a-length 0.30) -1))
(rlineto 0.00 0.70)
(rlineto 0.85 -1.00)
(rlineto -0.85 0.50)
(rlineto 0.85 -0.50)
(rlineto 0.00 2.50)
(rlineto -0.85 1.00)
(lineto 0.15 -2.30)
(lineto 1.00 -3.00)
(lineto 0.15 -2.30)
(curveto 0.15 -2.20 0.10 -2.15 0.00 -2.15)
(closepath)
(moveto -0.15 -2.30)
(lineto -0.15 ,(* (- a-length 0.30) -1))
(lineto 0.00 ,(* (- a-length 0.30) -1))
(lineto -0.15 ,(* (- a-length 0.30) -1))
(rmoveto 0.00 0.70)
(rlineto -0.85 -1.00)
(rlineto 0.85 0.50)
(rlineto 0.00 0.50)
(rmoveto -0.85 -1.00)
(rlineto 0.00 2.50)
(rlineto 0.85 1.00)
(rlineto -0.85 -1.00)
(closepath)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto 1.00 -3.00)
(lineto 0.00 -1.50)
(lineto 0.00 -2.15)
(curveto -0.15 -2.15 -0.15 -2.30 -0.15 -2.30)
(lineto -1.00 -3.00)
(lineto 0.00 -1.50)
(closepath)
(lineto -1.00 -3.00)
(lineto 0.00 0.00)
(closepath)
(moveto 0.00 -2.00)
(lineto 0.00 ,(* (- a-length 0.30) -1))
(lineto 0.15 ,(* (- a-length 0.30) -1))
(lineto 0.15 -2.30)
(lineto 1.00 -3.00)
(lineto 0.15 -2.30)
(curveto 0.15 -2.20 0.10 -2.15 0.00 -2.15)
(closepath)
(moveto -0.15 -2.30)
(lineto -0.15 ,(* (- a-length 0.30) -1))
(lineto 0.00 ,(* (- a-length 0.30) -1))
(lineto -0.15 ,(* (- a-length 0.30) -1))
(closepath)))))))
((and (string=? type "relief")(and (eq? axis Y)(eq? direction -1)))
(if (eq? fletching fletching?)
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 -0.00)
(lineto 1.00 3.00)
(lineto 0.00 1.50)
(lineto 0.00 2.15)
(curveto -0.15 2.15 -0.15 2.30 -0.15 2.30)
(lineto -1.00 3.00)
(lineto 0.00 1.50)
(closepath)
(lineto -1.00 3.00)
(lineto 0.00 0.00)
(closepath)
(moveto 0.00 2.00)
(lineto 0.00 ,(- a-length 0.30))
(lineto 0.15 ,(- a-length 0.30))
(rlineto 0.00 -0.70)
(rlineto 0.85 1.00)
(rlineto -0.85 -0.50)
(rlineto 0.85 0.50)
(rlineto 0.00 -2.50)
(rlineto -0.85 -1.00)
(lineto 0.15 2.30)
(lineto 1.00 3.00)
(lineto 0.15 2.30)
(curveto 0.15 2.20 0.10 2.15 0.00 2.15)
(closepath)
(moveto -0.15 2.30)
(lineto -0.15 ,(- a-length 0.30))
(lineto 0.00 ,(- a-length 0.30))
(lineto -0.15 ,(- a-length 0.30))
(rmoveto 0.00 -0.70)
(rlineto -0.85 1.00)
(rlineto 0.85 -0.50)
(rlineto 0.00 -0.50)
(rmoveto -0.85 1.00)
(rlineto 0.00 -2.50)
(rlineto 0.85 -1.00)
(rlineto -0.85 1.00)
(closepath)))))
(markup
(#:override (cons (quote filled) #t)
(#:path boldness
`((moveto 0.00 0.00)
(lineto 1.00 3.00)
(lineto 0.00 1.50)
(lineto 0.00 2.15)
(curveto -0.15 2.15 -0.15 2.30 -0.15 2.30)
(lineto -1.00 3.00)
(lineto 0.00 1.50)
(closepath)
(lineto -1.00 3.00)
(lineto 0.00 0.00)
(closepath)
(moveto 0.00 2.00)
(lineto 0.00 ,(- a-length 0.30))
(lineto 0.15 ,(- a-length 0.30))
(lineto 0.15 2.30)
(lineto 1.00 3.00)
(lineto 0.15 2.30)
(curveto 0.15 2.20 0.10 2.15 0.00 2.15)
(closepath)
(moveto -0.15 2.30)
(lineto -0.15 ,(- a-length 0.30))
(lineto 0.00 ,(- a-length 0.30))
(lineto -0.15 ,(- a-length 0.30))
(closepath)))))))
(else (ly:error "Arrows' parameter(s) do not fit")))))
%%% end "arrows.ily %%%
%%%% ARROWS LIST %%%%%
%\markup
%\override #'(baseline-skip . 3)
%\column { \italic "Arrows' type list:" \null }
\markup {
\center-column {
\italic { "open" "(bold. #0.14)" }
\vspace #0.5
\concat
\scale #'(1.5 . 1.5)
\vcenter {
\arrow #"open" ##t #Y #UP #10 #0.14
\hspace #1
\arrow #"open" ##f #Y #DOWN #10 #0.14
}
}
\hspace #1
\center-column {
\italic { "closed" "(bold. #0.07)" }
\vspace #0.5
\concat
\scale #'(1.5 . 1.5)
\vcenter {
\arrow #"closed" ##t #Y #UP #10 #0.07
\hspace #1
\arrow #"closed" ##f #Y #DOWN #10 #0.07
}
}
\hspace #1
\center-column {
\italic { "huron" "(bold. #0.15)" }
\vspace #0.5
\concat
\scale #'(1.5 . 1.5)
\vcenter {
\arrow #"huron" ##t #Y #UP #10 #0.15
\hspace #1
\arrow #"huron" ##f #Y #DOWN #10 #0.15
}
}
\hspace #1
\center-column {
\italic { "long" "(bold. #0.07)" }
\vspace #0.5
\concat
\scale #'(1.5 . 1.5)
\vcenter {
\arrow #"long" ##t #Y #UP #10 #0.07
\hspace #1
\arrow #"long" ##f #Y #DOWN #10 #0.07
}
}
\hspace #1
\center-column {
\italic { "large" "(bold. #0.07)" }
\vspace #0.5
\concat
\scale #'(1.5 . 1.5)
\vcenter {
\arrow #"large" ##t #Y #UP #10 #0.07
\hspace #1
\arrow #"large" ##f #Y #DOWN #10 #0.07
}
}
\hspace #1
\center-column {
\italic { "wings" "(bold. #0.10)" }
\vspace #0.5
\concat
\scale #'(1.5 . 1.5)
\vcenter {
\arrow #"wings" ##t #Y #UP #10 #0.1
\hspace #1
\arrow #"wings" ##f #Y #DOWN #10 #0.1
}
}
\hspace #1
\center-column {
\italic { "relief" "(bold. #0.03)" }
\vspace #0.5
\concat
\scale #'(1.5 . 1.5)
\vcenter {
\arrow #"relief" ##t #Y #UP #10 #0.03
\hspace #1
\arrow #"relief" ##f #Y #DOWN #10 #0.03
}
\vspace #2
}
}
%%%%% TESTS %%%%%%%
\markup
\override #'(baseline-skip . 3)
\column { \italic "Use case examples:" \null }
%% As stroke indication:
ri = \rightHandFinger #2
ru = \rightHandFinger\markup\arrow #"huron" ##f #Y #UP #2 #0.15
\score {
\new Staff {
\clef "G_8"
\time 3/4
\key d\minor
<d' f' a^\ri^\ru>4
<f' a' d''^\ru>
<d' f' a'^\ru>
<a cis' e' a'^\ru>8
}
\layout {
indent = 0
}
\header {
piece = \markup \bold "Fandango"
}
}
%% As instrument name, as tempo warning
\new Staff
\with { instrumentName = \markup\arrow #"large" ##t #X #RIGHT #7 #0.07 }
\relative c' {
\tempo
\markup {
\concat {
\raise #1
\scale #'(1.2 . 0.8)
\with-color #red
\arrow #"wings" ##f #X #RIGHT #5 #0.3 " ("
\smaller \general-align #Y #DOWN \note {16.} #1
" = "
\smaller \general-align #Y #DOWN \note {8} #1
")"
}
}
c8 d e f g a b c
}
%% As indication, as 'balloonGrobText alternative:
\score {
\new Staff {
\clef "G_8"
\stemDown
e,2 \textLengthOff e_~
^\markup {
\with-dimensions #'(0 . 0) #'(0 . 0)
\rotate #150
\translate #'(-1 . 0)
\arrow #"open" ##f #Y #UP #7.5 #0.2
\tiny\italic { "This is an E" }
}
e
}
\layout {
indent = 0
}
}
%% Put some space here:
\markup \vspace #1
%%%%%%%%%%%%%%%%%%%%%%
%% As conducting signs:
\markup
\scale #'(0.7 . 0.7)
{
%% 4 beats
\combine
\concat {
\column {
\lower #1 \number "2 "
\translate #'(1 . 1)
\rotate #55
\with-dimensions #'(0 . 0) #'(0 . 0)
\arrow #"long" ##t #Y #UP #12 #0.07
}
\arrow #"long" ##t #X #RIGHT #21 #0.07
\lower #1
\number " 3"
}
\translate #'(11.5 . 10)
\center-column {
\column {
\lower #1 \number "4"
\translate #'(2 . 2)
\rotate #55
\with-dimensions #'(0 . 0) #'(0 . 0)
\arrow #"long" ##t #Y #UP #12 #0.07
}
\vspace #.3
\arrow #"long" ##t #Y #DOWN #17 #0.07
\number "1"
}
%% Put some space here:
\hspace #4
%%%%%%%%%%%%%%%%%%%%%%
%% 3 beats
\vcenter {
\center-column {
\number "3" \vspace #.5
\arrow #"long" ##t #Y #DOWN #17 #0.07
\number "1"
}
\center-column {
\rotate #-30 \arrow #"long" ##t #X #LEFT #17 #0.07
\rotate #30 \arrow #"long" ##t #X #RIGHT #17 #0.07
}
}
\lower #1 \number " 2"
}
%% Put some space here:
\markup \vspace #1
%%%%%%%%%%%%%%%%%%%%%%
%% In titles as markups
\score {
\relative c' { c4 e g }
\layout {
indent = 0
}
\header {
piece = \markup\override #'(baseline-skip . 1.5)\center-column {
\scale #'(2 . 1) \smallCaps "ArrowS"
\arrow #"relief" ##t #X #RIGHT #18 #0.03
}
}
}
%% As split staff indication :
\markup\column {
\line {
See also:
\italic %\with-url "http://lsr.di.unimi.it/LSR/Item?id=650"
\concat { "Adding indicators to staves which get split after a break" }
}
\line {
and see how
\typewriter "'arrow-at-angle"
could be re-written with
\typewriter "'arrow"
instead of \typewriter "'arrow-head."
}
\line { This will help removing the ungainly space between arrows head and arrows shaft. }
}
%% see http://lsr.di.unimi.it/LSR/Item?id=650
%% 'arrow-at-angle can be written as:
#(define-markup-command (arrow-at-angle layout props angle-deg length fill)
(number? number? boolean?)
(let* ((PI-OVER-180 (/ (atan 1 1) 34))
(degrees->radians (lambda (degrees) (* degrees PI-OVER-180)))
(angle-rad (degrees->radians angle-deg))
(target-x (* length (cos angle-rad)))
(target-y (* length (sin angle-rad))))
(interpret-markup layout props
(markup
#:translate (cons (/ target-x 2) (/ target-y 2))
#:rotate angle-deg
#:translate (cons (/ length 1.3) 0)
#:arrow "closed" #f 0 1 3.4 0.07 ))))
\paper { tagline = ##f }
%%%% SNIPPET END %%%%