lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: TextScript dans une définition markup


From: Jean Abou Samra
Subject: Re: TextScript dans une définition markup
Date: Sat, 12 Dec 2020 19:06:18 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0

Hello,

Le 11/12/2020 à 19:09, martial a écrit :
Bonjour,

je cherche à inclure dans une  définition de commande markup
un \override TextScript
je tourne en rond depuis 2 jours !


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.21.81"

#(define-markup-command (Stabilo layout props color xdim ydim)
    (color? pair? pair?)
    #{ \override TextScript.layer = #-1 #} ;ne retourne rien

En Scheme, une fonction est une suite d'expressions qui sont évaluées l'une
après l'autre. La valeur de la dernière expression évaluée est renvoyée par
la fonction. Celles qui précèdent ne peuvent servir que si elles ont des
effets de bord (par exemple, dans le contexte de LilyPond, modifier une
propriété). Donc, ce bout de code est évalué, et le résultat… jeté à la
poubelle ! Évidemment, ce n'est pas ce que vous souhaitiez.

Voici une solutionpour factoriser la retouche du layer à l'intérieur
de la commande :

\version "2.21.80"

% Commande de markup auxiliaire, qui lit une propriété et crée
% le coup de stabilo.

#(define-markup-command (Stabilo-markup layout props color xdim ydim)
                        (color? number-pair? number-pair?)
  (interpret-markup layout props
    #{
      \markup
      \with-dimensions-from \null
      \with-color #color
      \filled-box #xdim #ydim #3
    #}))

% On utilise le raccourci pratique et nouveau en 2.20, \etc,
% qui permet de transférer le reste de l'évaluation des arguments
% à l'endroit où l'identifieur est rappelé avec \Stabilo. Ceci évite
% une fonction musicale.

Stabilo = \tweak layer -1 -\markup \Stabilo-markup \etc

% Exemple.

\relative c' {
  \clef treble
  \key g \major
  c4\Stabilo #green #'(-6 . -5) #'(2 . 6)
  d e fis |
  g4 f?
  e\Stabilo  #yellow #'(-5 . 5) #'(-3 . 6)
  c |
  d4
  e4\Stabilo #black #'(-2 . 2) #'(-2 . 2)
  fis
  \bar "|."
}



Cordialement,
Jean




reply via email to

[Prev in Thread] Current Thread [Next in Thread]