[ << Pitches ] | [Top][Contents] | [ Rhythms >> ] |
[ < 移調を含む他のボイスの引用 ] | [ Up : Pitches ] | [ 臨時記号の数が最小になるようにピッチを移調する ("スマート" トランスポーズ) > ] |
調号の取り消し表示を新たな調号から離す
デフォルトでは、調号が変更される際のナチュラルによる取り消し表示は、新たな調号のすぐ隣に配置されます。この挙動は、BreakAlignment
Grob の
break-align-orders
プロパティをオーバライドすることで変更できます。
break-align-orders
は長さ 3 のベクトルで、それぞれが改行可能なアイテムを要素とした quote リストを取ります。この例では
2 つ目のリストのみを変更しており、key-cancellation
を staff-bar
の前に移動しています。2 番目の要素はシステムの途中における配置に影響し、行頭あるいは行末には影響しません。
#(define (insert-before where what lst) (cond ((null? lst) ; If the list is empty, (list what)) ; return a single-element list. ((eq? where (car lst)) ; If we find symbol `where`, (cons what lst)) ; insert `what` before curr. position. (else ; Otherwise keep building the list by (cons (car lst) ; adding the current element and ; recursing with the next element. (insert-before where what (cdr lst)))))) cancellationFirst = \override Score.BreakAlignment.break-align-orders = #(grob-transformer 'break-align-orders (lambda (grob orig) (let* ((middle (vector-ref orig 1)) (middle (delq 'key-cancellation middle)) (middle (insert-before 'staff-bar 'key-cancellation middle))) (vector ;; end of line (vector-ref orig 0) ;; middle of line middle ;; beginning of line (vector-ref orig 2))))) music = { \key es \major d'1 \bar "||" \key a \major d'1 } { <>^\markup "default" \music } { <>^\markup "cancellation first" \cancellationFirst \music } \paper { tagline = ##f }
[ << Pitches ] | [Top][Contents] | [ Rhythms >> ] |
[ < 移調を含む他のボイスの引用 ] | [ Up : Pitches ] | [ 臨時記号の数が最小になるようにピッチを移調する ("スマート" トランスポーズ) > ] |