[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: \mark, encadrement et positionnement conditionnel
From: |
Jean Abou Samra |
Subject: |
Re: \mark, encadrement et positionnement conditionnel |
Date: |
Fri, 29 Sep 2023 13:03:30 +0200 |
User-agent: |
Evolution 3.48.4 (3.48.4-1.fc38) |
Le vendredi 29 septembre 2023 à 03:55 +0000, Frédéric Moinard a écrit :
>
> Réponse en message personnel pour ne pas encombrer la liste avec une image.
Comme ça, ça devrait le faire :
\version "2.24.2"
#(use-modules (ice-9 match))
#(define-markup-command (handwriting-box layout props arg) (markup?)
#:properties ((thickness 0.3)
(padding 0.5)
(width 0.2))
(match-let* ((stil (interpret-markup layout props arg))
((start-X . end-X) (interval-widen (ly:stencil-extent stil X)
padding))
((start-Y . end-Y) (interval-widen (ly:stencil-extent stil Y)
padding))
(width (* width (- end-Y start-Y)))
(Y-point (lambda (x)
(+ start-Y (* x (- end-Y start-Y))))))
(ly:stencil-add
stil
(make-path-stencil
`(moveto ,start-X ,start-Y
lineto ,end-X ,start-Y
curveto ,(+ end-X width) ,(Y-point 1/3)
,(+ end-X width) ,(Y-point 2/3)
,end-X ,end-Y
lineto ,start-X ,end-Y
curveto ,(- start-X width) ,(Y-point 2/3)
,(- start-X width) ,(Y-point 1/3)
,start-X ,start-Y)
thickness 1 1 #f))))
%% \markup \handwriting-box "foo"
\layout {
\set Score.rehearsalMarkFormatter = #format-mark-barnumbers
\override Score.RehearsalMark.stencil =
#(grob-transformer
'stencil
(lambda (grob orig)
(grob-interpret-markup
grob
#{
\markup
%% ajuster les paramètres
\override #'((thickness . 0.4)
(padding . 0.4)
(width . 0.2))
\handwriting-box \stencil #orig
#})))
\override Score.RehearsalMark.break-align-symbols = #'(left-edge staff-bar
key-signature clef)
}
myMark =
#(define-music-function (label) ((index-or-markup?))
#{
\once \omit Score.BarNumber
#(if label #{ \mark #label #} #{ \mark \default #})
#})
{
c'1 \break
\myMark \default
c'1
\myMark \default
c'1
}
signature.asc
Description: This is a digitally signed message part