Subject: Couplet en italique

From: "[email-masked]" <[email-masked]>
Date: Wed, 9 Mar 2022 22:18:04 +0100

Bonsoir,

Je sèche sur une chose qui doit être simple : pour distinguer les couplets, je souhaite que le second soit en italique.

Un extrait du code :

couplet_chant_a = \lyricmode   { \include "couplet_chant1.ily" }
couplet_chant_b = \lyricmode   { \include "couplet_chant2.ily" }

\new Lyrics \lyricsto "Couplet" { \set stanza = "1. " \couplet_chant_a }
\new Lyrics \lyricsto "Couplet" { \set stanza = "2. " \couplet_chant_b }

Où ajouter le \markup { \italic }

Merci de votre aide
Philippe

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 9 Mar 2022 22:27:35 +0100

> Où ajouter le \markup { \italic }

Bonjour Philippe,

\markup \italic, ce serait pour une syllable isolée à mettre en italique.
Pour mettre toute une série de syllabes en italique, faire :

\version "2.22.1"

\relative { c'4 c c d e2 d }
\addlyrics {
   \override LyricText.font-shape = #'italic
   Au clair de la lu -- ne
}

De manière amusante, c'est précisément l'exemple que prend le manuel
d'initiation pour illustrer comment fouiller les interfaces du manuel
de référence des propriétés internes.

http://lilypond.org/doc/v2.23/Documentation/learning/properties-found-in-interfaces

Cordialement,
Jean

---

From: "[email-masked]" <[email-masked]>
Date: Wed, 9 Mar 2022 22:32:29 +0100

Merci beaucoup pour ce rappel sympathique.
Si je peux abuser de ton savoir : peut-on remettre devant chaque ligne le numéro (stanza) du couplet ?
Merci, Philippe

> Le 9 mars 2022 à 22:27, Jean Abou Samra <[email-masked]> a écrit :
>

---

From: Martial R <[email-masked]>
Date: Wed, 09 Mar 2022 23:02:47 +0100

\relative { c'4 c c d e2 d }
\addlyrics {
   \override LyricText.font-shape = #'italic
   \override StanzaNumber.font-shape = #'italic
   \set stanza = "2  :" Au clair de la lu -- ne
}

⁣Télécharger BlueMail pour Android ​

Le 9 mars 2022 à 22:32, à 22:32, "[email-masked]" <[email-masked]> a écrit:
>>> Je sèche sur une chose qui doit être simple : pour distinguer les
>couplets, je souhaite que le second soit en italique.
>>> 
>>> Un extrait du code :
>>>

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 9 Mar 2022 23:28:20 +0100

> Si je peux abuser de ton savoir : peut-on remettre devant chaque ligne le numéro (stanza) du couplet ?

C'est possible aussi, par contre pour le coup il faut travailler
un peu plus techniquement.

\version "2.22.1"

#(define (add-grob-definition grob-name grob-entry)
    (set! all-grob-descriptions
          (cons ((@@ (lily) completize-grob-entry)
                 (cons grob-name grob-entry))
                all-grob-descriptions)))

#(add-grob-definition
   'StanzaNumberSpanner
   `((direction . ,LEFT)
     (font-series . bold)
     (padding . 1.0)
     (side-axis . ,X)
     (stencil . ,ly:text-interface::print)
     (X-offset . ,ly:side-position-interface::x-aligned-side)
     (Y-extent . ,grob::always-Y-extent-from-stencil)
     (meta . ((class . Spanner)
              (interfaces . (font-interface
                             side-position-interface
                             stanza-number-interface
                             text-interface))))))

\layout {
   \context {
     \Global
     \grobdescriptions #all-grob-descriptions
   }
   \context {
     \Score
     \remove Stanza_number_align_engraver
     \consists
       #(lambda (context)
          (let ((texts '())
                (syllables '()))
            (make-engraver
             (acknowledgers
              ((stanza-number-interface engraver grob source-engraver)
                 (set! texts (cons grob texts)))
              ((lyric-syllable-interface engraver grob source-engraver)
                 (set! syllables (cons grob syllables))))
             ((stop-translation-timestep engraver)
                (for-each
                 (lambda (text)
                   (for-each
                    (lambda (syllable)
                      (ly:pointer-group-interface::add-grob text 
'side-support-elements syllable))
                    syllables))
                 texts)
                (set! syllables '())))))
   }
   \context {
     \Lyrics
     \remove Stanza_number_engraver
     \consists
       #(lambda (context)
          (let ((text #f))
            (make-engraver
             ((process-music engraver)
                (if (not text)
                    (let ((stanza (ly:context-property context 'stanza #f)))
                      (if stanza
                          (begin
                            (set! text (ly:engraver-make-grob engraver 
'StanzaNumberSpanner '()))
                            (let ((column (ly:context-property context 
'currentCommandColumn)))
                              (ly:grob-set-property! text 'text stanza)
                              (ly:spanner-set-bound! text LEFT column)))))))
             ((finalize engraver)
                (if text
                    (let ((column (ly:context-property context 
'currentCommandColumn)))
                      (ly:spanner-set-bound! text RIGHT column)))))))
     \override StanzaNumberSpanner.horizon-padding = 10000
     \override LyricText.font-shape = #'italic
   }
}

\relative { c'4 c c d e2 d c4 e d d c1 }
\addlyrics {
   \set stanza = "1."
   Au clair de la lu -- ne,
   \break
   mon a -- mi Pier -- rot
}
\addlyrics {
   \set stanza = "2."
   Au clair de la lu -- ne,
   Test-syllabe-longue-Pier -- rot ré -- pon -- dit
}

Cordialement,
Jean

---

From: Papilip <[email-masked]>
Date: Wed, 9 Mar 2022 23:54:21 +0100

Merci beaucoup,
Je testerai demain.
Vraiment très fort !!!
Mille merci pour ton temps.
Philippe 

> Le 9 mars 2022 à 23:28, Jean Abou Samra <[email-masked]> a écrit :
> 
>                      (ly:pointer-group-interface::add-grob text 'side-support-elements syllable))
>                    syllables))
>                 texts)
>                (set! syllables '())))))
>   }
>   \context {
>     \Lyrics
>                            (set! text (ly:engraver-make-grob engraver 'StanzaNumberSpanner '()))
>                            (let ((column (ly:context-property context 'currentCommandColumn)))
>                    (let ((column (ly:context-property context 'currentCommandColumn)))