Subject: alignement opus et piece

From: "Fr�re Rapha�l" <[email-masked]>
Date: Fri, 21 Sep 2012 19:06:36 +0200

Voici une meilleure solution avec l'opus sur la marge extérieure
et la piece que l'on peut placer où l'on veut, ce qui demande un ajustement à chaque pièce.
Merci
Raphaël

---

From: Eluze <[email-masked]>
Date: Fri, 21 Sep 2012 13:23:44 -0700 (PDT)

Frère Raphaël wrote
> ajustement à chaque pièce.

bonsoir

je proposerais plus-tôt d'utiliser une formule comme

\header {
   opus = \markup { \consider-page-num #'b "hymn-2" }
   piece = \markup {\fill-line { \null  "Aria avec un très long nom" \null}}
}

qui centre le /piece/ - sans devoir s'occuper que le numéro de la page soit
pair ou impair.

mais je préférerais une solution qui  prend compte des deux variables /opus/
et /piece/

malheureusement je ne comprends pas assez scheme pour pouvoir adapter le
code de David (/consider-page-num/) - y a-t-il quelqu'un qui sait comment
faire?

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578433.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Gilles <[email-masked]>
Date: Sun, 23 Sep 2012 23:37:57 +0200

> code de David (/consider-page-num/) - y a-t-il quelqu'un qui sait comment

Pour ne justement pas toucher le code de David, j'ai laisser la fonction
être appeler par opus, mais
je ne sais pas si c'est le résultat que tu souhaitais.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.16.0"
\paper {
	scoreTitleMarkup = \markup { \column {
		\on-the-fly #print-all-headers { \bookTitleMarkup \hspace #1 }
		\fill-line {
			\fromproperty #'header:opus
			\tiny \fromproperty #'header:piece
		}
		}
	}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#(define-markup-command (my-hymn layout props label arg1 arg2)
     (symbol? markup? markup?)
     (let* ((stencil (interpret-markup layout props arg1))
	       (x-ext (ly:stencil-extent stencil X))
	       (y-ext (ly:stencil-extent stencil Y))
	       (arg1-stencil (ly:make-stencil  ;; David Code
              `(delay-stencil-evaluation
                ,(delay (ly:stencil-expr
              (let* ((table (ly:output-def-lookup layout 'label-page-table))
                     (page-number (if (list? table)
                                      (assoc-get label table)
                    #f)))
                (interpret-markup layout props
                  (if (even? page-number)
                (markup arg1)
                (markup #:fill-line ("" arg1))))))))
              x-ext
              y-ext))
            (arg2-stencil (interpret-markup layout props
                                  (markup #:fill-line (arg2)))))
      (ly:stencil-add arg1-stencil arg2-stencil)))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\book {
     \score {
       \new Staff { \label #'a \repeat unfold 100 c'1 }
       \header {
         opus = \markup \my-hymn #'a "hymn-1" "Te Deum"
       }
     }

     \score {
       \new Staff { \label #'b \repeat unfold 100 c'1 }
       \header {
         opus = \markup \my-hymn #'b "hymn-2" "Aria"
       }
     }

     \score {
       \new Staff { \label #'c \repeat unfold 100 c'1 }
       \header {
         opus = \markup \my-hymn #'c "hymn-3" "Messe"
       }
     }

     \score {
       \new Staff { \label #'d c'1 }
       \header {
         opus = \markup \my-hymn #'d "hymn-4" "Solo"
       }
     }

     \score {
       \new Staff { \label #'e \repeat unfold 100 c'1 }
       \header {
         opus = \markup \my-hymn #'e "hymn-5" "Magnificat"
       }
     }

     \score {
       \new Staff { \label #'f c'1 }
       \header {
         opus = \markup \my-hymn #'f "hymn-6" "Agnus"
       }
     }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

-- 
Gilles

---

From: Gilles <[email-masked]>
Date: Mon, 24 Sep 2012 10:11:09 +0200

> être appeler par opus
Ouf ! 2 fautes d'accord en 2 verbes. Orthographe = 0/20
Comme ma phrase en plus, ne voulait rien dire, je reformule ...
On peut appeler la fonction que j'ai nommée ici my-hymn via la propriété
opus du \header.
J'en profite pour supprimer du coup, la réference à la propriété piece dans
scoreTitleMarkup

         (interpret-markup layout props (if (even? page-number)
                               (markup #:fill-line (#:tiny arg2)))))

\book {
       \score {

       \score {

       \score {

       \score {

       \score {

       \score {

---

From: Gilles <[email-masked]>
Date: Mon, 24 Sep 2012 10:23:19 +0200

> J'en profite pour supprimer du coup, la réference à la propriété piece  
> dans scoreTitleMarkup
Mais ça marche aussi, si on remplace toutes les occurences de "opus" par  
"piece" ...

-- 
Gilles

---

From: Eluze <[email-masked]>
Date: Mon, 24 Sep 2012 01:29:09 -0700 (PDT)

Gilles THIBAULT wrote
> je ne sais pas si c'est le résultat que tu souhaitais.

merci - je pense que c'est à peu près ce que Raphaël cherche!

petit détail: les deux arguments ne sont pas exactement à la même hauteur
(dû aux queues de lettres)
est-il possible de combiner arg1 et arg2 en même temps:

 (markup #:fill-line (arg1 arg2 "")) ;even
 (markup #:fill-line ("" arg2 arg1)) ;odd

(ou en dans la ligne arg1-stencil arg2-stencil)

pour une autre fois: pourrait-on incorporer cette fonctionnalité dans la
définition du scoreTitleMarkup permettant de réutiliser opus = et piece =?

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578471.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: "Frère Raphaël" <[email-masked]>
Date: Mon, 24 Sep 2012 12:54:28 +0200

Un grand merci à Eluze et Gilles pour leurs recherches qui avancent !
Comme le propose Eluze, j'aimerais pouvoir incorporer cette (ou une autre) fonction dans la définition du scoreTitleMarkup permettant d'utiliser ensemble opus =  et piece = .
Avec le but que l'opus soit toujours mis à l'extérieur de la page et que la piece soit placée à un endroit fixe, mais pas nécessairement au milieu, plutôt un peu sur la gauche. Est-ce qu'une variable ne peut pas être introduite dans la définition du scoreTitleMarkup ? Ceci est en vue de faciliter la mise en page d'un livret de petits chants.
Voici ci-dessous le résultat que j'aimerais mais il faudrait simplifier l'écriture (surtout la recherche de la valeur du \halign qui prend du temps pour chaque piece).
Raphaël

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.16.00"
\paper {
scoreTitleMarkup = \markup { \column {
\on-the-fly #print-all-headers { \bookTitleMarkup \hspace #1 }
\fill-line {
\fromproperty #'header:opus
\tiny \fromproperty #'header:piece
}
}
}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#(define-markup-command (consider-page-num layout props label arg)
  (symbol? markup?)
  (let* ((stencil (interpret-markup layout props arg))
 (x-ext (ly:stencil-extent stencil X))
 (y-ext (ly:stencil-extent stencil Y)))
    (ly:make-stencil
     `(delay-stencil-evaluation
       ,(delay (ly:stencil-expr
 (let* ((table (ly:output-def-lookup layout 'label-page-table))
        (page-number (if (list? table)
                         (assoc-get label table)
 #f)))
   (interpret-markup layout props
     (if (even? page-number)
 (markup arg)
 (markup #:fill-line ("" arg))))))))
     x-ext
     y-ext)))
     
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
     
\book {
  \score { 
    \new Staff { \label #'a \repeat unfold 100 c'1 }
    \header {
      opus = \markup { \consider-page-num #'a "hymn-1" }
      piece = \markup { \null \halign #27 "Te Deum" }
    }
  }
  \score {
    \new Staff { \label #'b \repeat unfold 100 c'1 }
    \header {
      opus = \markup { \consider-page-num #'b "hymn-2" }
      piece = \markup { \null \halign #57 "Aria" }
    }
  }
  
  \score {
    \new Staff { \label #'c \repeat unfold 100 c'1 }
    \header {
      opus = \markup { \consider-page-num #'c "hymn-3" }
      piece = \markup { \null \halign #38 "Messe" }
    }
  }
  
  \score {
    \new Staff { \label #'d c'1 }
    \header {
      opus = \markup { \consider-page-num #'d "hymn-4" }
      piece = \markup { \null \halign #55 "Solo" }
    }
  }
  
  \score {
    \new Staff { \label #'e \repeat unfold 100 c'1 }
    \header {
      opus = \markup { \consider-page-num #'e "hymn-5" }
      piece = \markup { \null \halign #21.5 "Magnificat" }
    }
  }
  
  \score {
    \new Staff { \label #'f c'1 }
    \header {
      opus = \markup { \consider-page-num #'f "hymn-6" }
      piece = \markup { \null \halign #38 "Agnus" }
    }
  }
}

De : Eluze 
Date/heure : 24-09-2012  10:29:18 
A : lilypond-user-fr 
Cc : 
Sujet : Re: alignement opus et piece 
 
Gilles THIBAULT wrote
merci - je pense que c'est à peu près ce que Raphaël cherche!
petit détail: les deux arguments ne sont pas exactement à la même hauteur
(dû aux queues de lettres)
est-il possible de combiner arg1 et arg2 en même temps:
 (markup #:fill-line (arg1 arg2 "")) ;even
 (markup #:fill-line ("" arg2 arg1)) ;odd
(ou en dans la ligne arg1-stencil arg2-stencil)
pour une autre fois: pourrait-on incorporer cette fonctionnalité dans la
définition du scoreTitleMarkup permettant de réutiliser opus = et piece =?
Eluze
--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578471.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.
_______________________________________________
liste de diffusion lilypond-user-fr
[email-masked]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr

---

From: Gilles <[email-masked]>
Date: Mon, 24 Sep 2012 13:58:52 +0200

> (dû aux queues de lettres)
Je n'ai pas remarqué un tel décalage mais on peut remplacer  
(ly:stencil-add ...)
par :
   (ly:stencil-combine-at-edge arg1-stencil Y CENTER arg2-stencil 0)
Changer au choix CENTER par BOTTOM ou UP

-- 
Gilles

---

From: Eluze <[email-masked]>
Date: Mon, 24 Sep 2012 05:45:51 -0700 (PDT)

Gilles THIBAULT wrote
> Je n'ai pas remarqué un tel décalage 

c'est mieux visible avec de long noms:

opus = \markup \my-hymn #'a "yyy hymn-1 yyyyyyyyyyyyyyyyyyy " "Te Deum Te
Deum Te Deum Te Deum "

> mais on peut remplacer (ly:stencil-add ...) par :
> 

non, ce n'est pas ça, il faudrait pouvoir définir une baseline commune et
indépendante des longueurs de queues rencontrées.

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578474.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Eluze <[email-masked]>
Date: Mon, 24 Sep 2012 06:56:25 -0700 (PDT)

Gilles THIBAULT wrote
>> petit détail: les deux arguments ne sont pas exactement à la même hauteur

voilà - j'ai ajouté

                (markup #:fill-line (arg1 #:transparent "fg"))
                (markup #:fill-line (#:transparent "fg" arg1))
et
                (markup #:fill-line (#:transparent "fg" arg2 "" ))

et je ré-utilise ly:stencil-add, ce qui aligne correctement les textes -
mais y aurait-il une solution moins primitive?!

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578475.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Gilles <[email-masked]>
Date: Mon, 24 Sep 2012 18:51:27 +0200

Le Mon, 24 Sep 2012 12:54:28 +0200, Frère Raphaël <[email-masked]>  
a écrit:

> Comme le propose Eluze, j'aimerais pouvoir incorporer cette (ou une  
> autre) fonction dans la définition du scoreTitleMarkup permettant  
> d'utiliser ensemble opus =  et piece = .

Je ne comprend pas exactement ce que veut dire "utiliser ensemble opus =   
et piece = " ?.
On peut se définir ses propres variables \header.
Par exemple, si on veut une variable hymn, dans le header, on peut mettre :
   \header {
           hymn = \markup \my-hymn #'a "hymn-1" "Te Deum"
    }
et dans le scoreTitleMarkup, il suffit d'appeler hymn avec \fromproperty,  
mais en rajoutant le préfixe header: , comme suit :
   \fromproperty #'header:hymn
Ce qui laisse libre opus et piece pour d'autres usages.
Mais je pressens que ce n'est pas de ça ce dont il s'agit.

> Avec le but que l'opus soit toujours mis à l'extérieur de la page et que  
> la piece soit placée à un endroit fixe, mais pas nécessairement au  
> milieu, plutôt un peu sur la gauche. Est-ce qu'une variable ne peut pas  
> être introduite dans la définition du scoreTitleMarkup ? Ceci est en vue  
> de faciliter la mise en page d'un livret de petits chants.
> Voici ci-dessous le résultat que j'aimerais mais il faudrait simplifier  
> l'écriture (surtout la recherche de la valeur du \halign qui prend du  
> temps pour chaque piece).

Bon, en tout cas voici une version qui permettra une édition très rapide.
J'ai isolé 2 variables : stencil-even et stencil-odd dont on pourra très  
facilement éditer les markup
( l'édition est très proche d'un \markup traditionnel ). Eluze et raphaël  
vous n'avez apparemment pas tout à fait les mêmes souhaits ; j'ai plutôt  
fait le markup demandé par Raphaël, en mettant une variable hymn-hspace  
dans \page pour pouvoir décaler vers la gauche tout les titres des hymnes.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.16.0"
\paper {
       hymn-hspace = #10		% pour décaler les titres
       scoreTitleMarkup = \markup { \column {
         \on-the-fly #print-all-headers { \bookTitleMarkup \hspace #1 }
         \fromproperty #'header:hymn
         }
       }
}

#(define-markup-command (my-hymn layout props label arg1 arg2)
       (symbol? markup? markup?)
(let* ((space (+ (ly:output-def-lookup layout 'hymn-hspace 0)
                  (ly:output-def-lookup layout 'indent 0)))
        (stencil-even (interpret-markup layout props
            (markup #:line (arg1 #:hspace space arg2))))
            ; on peut utiliser general-align pour aligner les arg1 et arg2
        (stencil-odd (interpret-markup layout props
            (markup #:fill-line (#:line (#:hspace space arg2) arg1)))))
   (ly:make-stencil
     `(delay-stencil-evaluation
        ,(delay (ly:stencil-expr
           (let* ((table (ly:output-def-lookup layout 'label-page-table))
                  (page-number (if (list? table)
                    (assoc-get label table)
                    #f)))
             (if (even? page-number) stencil-even stencil-odd)))))
     '(0 . 0) '(0 . 0))))

\book {
       \score {
         \new Staff { \label #'a \repeat unfold 100 c'1 }
         \header {
           hymn = \markup \my-hymn #'a "hymn-1" "Te Deum"
         }
       }

       \score {
         \new Staff { \label #'b \repeat unfold 100 c'1 }
         \header {
           hymn = \markup \my-hymn #'b "hymn-2" "Aria"
         }
       }

       \score {
         \new Staff { \label #'c \repeat unfold 100 c'1 }
         \header {
           hymn = \markup \my-hymn #'c "hymn-3" "Messe"
         }
       }

       \score {
         \new Staff { \label #'d c'1 }
         \header {
           hymn = \markup \my-hymn #'d "hymn-4" "Solo"
         }
       }

       \score {
         \new Staff { \label #'e \repeat unfold 100 c'1 }
         \header {
           hymn = \markup \my-hymn #'e "hymn-5" "Magnificat"
         }
       }

       \score {
         \new Staff { \label #'f c'1 }
         \header {
           hymn = \markup \my-hymn #'f "hymn-6" "Agnus"
         }
       }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

-- 
Gilles

---

From: "Frère Raphaël" <[email-masked]>
Date: Mon, 24 Sep 2012 21:28:31 +0200

D'abord un grand merci.
C'est ce que je désire quant au résultat.
Je ne suis pas du tout doué dans toutes ces définitions ! C'est vraiment super !
Mais je me suis mal exprimé dans l'expression "utiliser ensemble opus = et piece =.
J'aimerais pouvoir, dans l'écriture de la partition, dans le \header, distinguer clairement l'opus et la piece,
car dans certains chants il n'y aura que l'opus et pas de nom de piece :
\header {
           opus =  
piece =
}
Et d'autant plus aussi que la dimension des caractères ne sera pas la même pour l'opus et pour la piece,
un paramétrage que nous devrons mettre dans le scoreTitleMarkup.
Il me semble que actuellement nous ne pouvons distinguer opus et piece pour les paramétrer différemment.
Encore merci de tout ce que vous faites.
J'espère que ça devient de plus en plus clair !
Raphaël

De : Gilles 
Date/heure : 24-09-2012  18:51:44 
A : lilypond-user-fr 
Cc : 
Sujet : Re: alignement opus et piece

---

From: "Frère Raphaël" <[email-masked]>
Date: Tue, 25 Sep 2012 12:26:07 +0200

Un grand merci à Gilles pour son travail et toutes ses explications.
Tout marche ainsi que je le souhaitais.
Raphaël

De : Gilles 
Date/heure : 25-09-2012  01:23:51 
A : Frère_Raphaël 
Cc : 
Sujet : Re: alignement opus et piece 
 
> J'aimerais pouvoir, dans l'écriture de la partition, dans le \header,  
> distinguer clairement l'opus et la piece,
Dans la fonction proposée, la propriété opus et piece du header ne sont  
pas utilisées
Dans par exemple,
   hymn = \markup \my-hymn #'a "hymn-1" "Te Deum"
le 2ème paramètre (ici "hymn-1") joue le rôle d'opus, et le 3ème ("Te  
Deum") de piece.
> car dans certains chants il n'y aura que l'opus et pas de nom de piece :
Il suffira de remplacer le 3ème paramètre par ""
   hymn = \markup \my-hymn #'a "hymn-1" ""
> un paramétrage que nous devrons mettre dans le scoreTitleMarkup.
Ah non, maintenant il faut mettre ces paramètrages dans la fonction  
my-hymn :
tout est dans ces 2 lignes dans la fonction :
   (markup #:line (arg1 #:hspace space arg2))                ; page paires
et
   (markup #:fill-line (#:line (#:hspace space arg2) arg1))  ; pages  
impaires
Par exemple, si on veut le texte du titre de la piece plus petit, on  
remplacera arg2 par #:tiny arg2, ce qui donnera :
    (markup #:line (arg1 #:hspace space #:tiny arg2))
    (markup #:fill-line (#:line (#:hspace space #:tiny arg2) arg1))
La correspondance \markup lilypond et scheme est documentée ici :
  http://lilypond.org/doc/v2.16/Documentation/extending/markup-construction-in-scheme
-- 
Gilles

---

From: Eluze <[email-masked]>
Date: Tue, 25 Sep 2012 06:53:10 -0700 (PDT)

Frère Raphaël wrote
> pour les paramétrer différemment.

on peut tout de même utiliser des commandes pour textes dans la définition
de /hymn=/, par exemple

 hymn = \markup \my-hymn #'a "hymn-1" \concat { \with-color #blue Te \hspace
#1 \with-color #green Deum }

si on veut le même paramétrage pour tous les objets au 1er ou 2ème rang, je
suis d'accord, il faudra chercher à intégrer cela dans le scoreTitleMarkup
ou dans la fonction de Gilles.

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578486.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: "Bruno" <[email-masked]>
Date: Wed, 26 Sep 2012 08:24:07 +0200

Bonjour,

J'ai utilisé lilypond il y a quelques années et je m'y remets à présent. 
J'ai oublié pas mal de choses mais j'arrive à peu près à me débrouiller avec 
la documentation en ligne. Cela dit, ce que je fais reste grandement du 
bricolage.

Je souhaiterais vous poser quelques questions sur la mise en page et sur une 
erreur qui survient lors de la compilation.

1) A propos de l'erreur de compilation. J'utilise Frescobaldi 2.0.7 et 
lorsque je compile pour avoir un aperçu, le journal m'indique : " Arrêté 
avec le code de retour 1 ". L'aperçu s'affiche néanmoins correctement et, 
lorsque je compile avec lilypond, j'obtiens bien le pdf que j'ai souhaité. 
Je vous joins, ci-dessous, l'intégralité de mon fichier .ly, ainsi que le 
journal de compilation. Si vous avez une idée sur cette erreur...

2) A propos de la mise en page,voilà ce que je souhaiterais faire :

a) Sauter une ligne ou deux entre le titre et le début de la partition.

b) Centrer les numéros des deux morceaux. En l'état actuel, ils sont alignés 
à gauche mais je les voudrais au centre.

Peut-on faire cela ? Si oui, comment ?

Merci d'avance pour vos réponses.

Voici mon fichier et le journal

%%%%% Mon Fichier .ly%%%%%%%%%

\header {
  title = " Petites pièces pour violon" }

\score {

  \markup { \huge "I"}

\relative c'' {
  \clef treble
  \key d \major
  \time 4/4

  {r8 d,8 a b c a'16( g fis e d c) b( d) g( e) d( cis) g'8~g fis16( e d cis 
b a) gis( b) e( cis) b( ais) e'8~e16 d( e fis g a b g) a( cis e d) cis b a g 
fis( a d cis)

  b a g fis e4~e16 fis( e d) cis( d e ) g -. a,-. fis'( e d) cis( d e) g-. 
a,-. b'( a g) fis( g a) c-. d,-. b'( a g) fis( g a) c-. d,-. e'( d cis) b-. 
e( fis g) a,-. c( b a) g-.
   cis( d e)  fis,-. a( g fis) e-. a( b cis) d,-. fis( e d) cis a b cis d e 
fis( e) g( fis) b( a) g( fis e) d-. d4 r4 r2 \bar "|."}

}

\break

  \markup {\huge "II"}

\relative c'' {
  \clef treble
  \key b \minor
  \time 3/4

{b8( cis d) fis  b4-. \appoggiatura {a8} g2.~g4 fis e d \trill [cis8 d] b4 | 
g'8( fis e) ais-. b-. g-. | fis( e d) ais'-. b-. fis-. | e( d cis) fis-. d-. 
b-. |
\appoggiatura {d8} cis2. \bar ":|:" fis,8( gis ais) cis-. fis4-. 
\appoggiatura {e8} d2. | a8( b cis) e-. a4-. \appoggiatura {g8} fis2. |
b,8( a g) cis-. d-. b-. a( g fis) cis'-. d-. a-. g4-. fis-. e-. \trill d2. | 
fis'8( e dis) b-. a'4 \appoggiatura {a8}g2. cis,8( d e) a-. g4
\appoggiatura{g8} fis2. ais,8( b cis) e-. d-. b-. g( fis e) d' cis ais' b4 
fis8( e) d( cis) b2. \bar "|."  }
}

}

%%%%%%%%%%%FIN du FICHIER%%%%%%%%%%%%%%%%%%%%%%

Voici ce que dit le journal, lorsque je compile :

Démarrage lilypond-windows.exe 2.14.2 [Violon.ly]...
Processing `C:/Users/carrefour/Desktop/LILYPOND/CHORAL/Violon.ly'
Parsing...
C:/Users/carrefour/Desktop/LILYPOND/CHORAL/Violon.ly:10:2: error: syntax 
error, unexpected \markup

  \markup { \huge "I"}

C:/Users/carrefour/Desktop/LILYPOND/CHORAL/Violon.ly:29:2: error: syntax 
error, unexpected \markup, expecting \addlyrics

  \markup {\huge "II"}

C:/Users/carrefour/Desktop/LILYPOND/CHORAL/Violon.ly:45:0: error: syntax 
error, unexpected '}'

}

C:/Users/carrefour/Desktop/LILYPOND/CHORAL/Violon.ly:0: warning: no \version 
statement found, please add

\version "2.14.2"

for future compatibility
Interpreting music... [8]
Preprocessing graphical objects...
Interpreting music...
C:/Users/carrefour/Desktop/LILYPOND/CHORAL/Violon.ly:36:54: warning: stem 
does not fit in beam
{b8( cis d) fis  b4-. \appoggiatura {a8} g2.~g4 fis e
                                                      d \trill [cis8 d] b4 | 
g'8( fis e) ais-. b-. g-. | fis( e d) ais'-. b-. fis-. | e( d cis) fis-. d-. 
b-. |

C:/Users/carrefour/Desktop/LILYPOND/CHORAL/Violon.ly:36:63: warning: beam 
was started here
{b8( cis d) fis  b4-. \appoggiatura {a8} g2.~g4 fis e d \trill
                                                               [cis8 d] b4 | 
g'8( fis e) ais-. b-. g-. | fis( e d) ais'-. b-. fis-. | e( d cis) fis-. d-. 
b-. |

[8][16][24]
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...
Layout output to `Violon.ps'...
Converting to `./Violon.pdf'...
error: failed files: "C:/Users/carrefour/Desktop/LILYPOND/CHORAL/Violon.ly"
Arrêté avec le code de retour 1.

---

From: Eluze <[email-masked]>
Date: Wed, 26 Sep 2012 02:11:23 -0700 (PDT)

encore un petit détail:

avec /hymn-hspace = #40/ et un titre général /\header { title = title }/ il
y a collision entre le "title" et la nouvelle ligne sur la première page et
- au cas où une pièce commence en tête de page - entre le numéro de la page
et la nouvelle ligne.

on peut ajouter 

\vspace #.001    % avant 

mais je me demande pourquoi ça arrive et si on pourrait faire une correction
dans le code!?

Eluze

ps: la fonction contient une jolie démonstration comment combiner plusieurs
éléments avec des espaces dans un \fill-line: /(markup #:fill-line (#:line
(#:hspace space arg2) arg1))/

(ça vaut d'être ajouté dans un manuel!)

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578488.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Gilles <[email-masked]>
Date: Thu, 27 Sep 2012 21:30:26 +0200

> mais je me demande pourquoi ça arrive et si on pourrait faire une  
C'est parce-que dans la fonction (ly:make-stencil stencil-expression  
X-extend Y-extend), X-extend, Y-extend sont à '(0 . 0).
Pour stencil-expression, il y a moyen de retarder l'évaluation de  
l'expression après la création complète de la table des labels, mais je  
n'en connais pas pour le calcul de X-extend et Y-extend. Impossible de  
savoir donc si on est dans une page paire ou impaire, au moment de l'appel  
de ly:make-stencil. C'est pour ça que j'ai mis X-extend et Y-extend à '(0  
. 0), mais du coup Lilypond considère la ligne créee comme un objet de  
taille nulle ...

Si on veut mettre des titres, on faut changer manuellement Y-extend et  
mettre '(0 . 4) par exemple :
(ly:make-stencil [...] '(0 . 0) '(0 . 4))
Peut-être que quelqu'un de plus calé que moi saurait le faire  
automatiquement.

-- 
Gilles

---

From: Gilles <[email-masked]>
Date: Thu, 27 Sep 2012 22:58:20 +0200

> Peut-être que quelqu'un de plus calé que moi saurait le faire  
Bon, en fait, on peut "additionner" les 2 stencils et calculer les  
dimensions des 2 réunis.
%%%%%%%%%%%
#(define-markup-command (my-hymn layout props label arg1 arg2)
       (symbol? markup? markup?)
(let* ((space (+ (ly:output-def-lookup layout 'hymn-hspace 0)
                  (ly:output-def-lookup layout 'indent 0)))
        (stencil-even (interpret-markup layout props
            ;(markup #:line (arg1 #:hspace space #:tiny arg2))))
            (markup #:fill-line ("" arg2 arg1))))
        (stencil-odd (interpret-markup layout props
            ;(markup #:fill-line (#:line (#:hspace space #:tiny arg2) arg1))
            (markup #:fill-line (arg1 arg2 ""))))
        (stencil-both (ly:stencil-add stencil-even stencil-odd)))
   (ly:make-stencil
     `(delay-stencil-evaluation
        ,(delay (ly:stencil-expr
           (let* ((table (ly:output-def-lookup layout 'label-page-table))
                  (page-number (if (list? table)
                    (assoc-get label table)
                    #f)))
             (if (even? page-number) stencil-even stencil-odd)))))
     (ly:stencil-extent stencil-both X)(ly:stencil-extent stencil-both Y))))
%%%%%%%%%%%
Mais le titre est un peu près de notre ligne. On peut sûrement régler ça  
avec je ne sais quelle propriété.

-- 
Gilles

---

From: Eluze <[email-masked]>
Date: Fri, 28 Sep 2012 02:15:30 -0700 (PDT)

Gilles THIBAULT wrote
> Bon, en fait, on peut "additionner" les 2 stencils et calculer les  

parfait!

mais ce qui m'étonne maintenant c'est qu'en forçant un \pageBreak à la fin
du livret et en doublant la pièce "Agnus" la nouvelle ligne de l'Agnus est
inversée sur la troisième page!

une idée? serait-ce la fonction /delay/ qui n'attend pas assez?

c'est vexant - je viens de construire un exemple qui a un page-break
/naturel/ et là c'est la page no. 4 qui cloche!

je joins mes deux fichiers :

title-alignment-by-even-or-odd_function.ly
<http://lilypond-french-users.1298960.n2.nabble.com/file/n7578500/title-alignment-by-even-or-odd_function.ly>  
title-alignment-by-even-or-odd-test.ly
<http://lilypond-french-users.1298960.n2.nabble.com/file/n7578500/title-alignment-by-even-or-odd-test.ly>  

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578500.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Gilles <[email-masked]>
Date: Fri, 28 Sep 2012 13:50:54 +0200

L
> inversée sur la troisième page!
Tu as mis le même label dans le dernier score que dans l'avant-dernier.
   \piece-and-opus-two #'f "first-title" "Agnus"   % avant dernier score
   \piece-and-opus-two #'f "first-title" "Agnus on new page" % dernier score

Il faudrait le label #'g dans le dernier score.
Si c'est volontaire, euh je ne sais plus trop alors, comment devrait se  
comporter Lilypond en pareil cas.
-- 
Gilles

---

From: Gilles <[email-masked]>
Date: Fri, 28 Sep 2012 14:04:15 +0200

> comporter Lilypond en pareil cas.
D'ailleurs Lilypond se comporte très bien, car le label f se trouvant à la  
page 3, Lilypond applique pour le score "Agnus on new page", la mise en  
page pour nombre impair, mais si ce score se trouve à la page 4.
On peut même rajouter un autre score h pour constater que tout reste dans  
l'ordre pour un label identique dans la music et l'appel de la fonction.
   \score {
     \new Staff { \label #'h \repeat unfold 100 c'1 }
     \header { piece-and-opus = \markup \piece-and-opus-two #'h  
"first-title" "Agnus n° 3" }
   }

-- 
Gilles

---

From: Eluze <[email-masked]>
Date: Fri, 28 Sep 2012 05:30:11 -0700 (PDT)

ahhhrg - quel sot!!! j'avais bien changé le label dans le staff, mais pas
dans le header!

mille excuses et bien-sûr Lilypond réagit correctement - me voilà soulagé!

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578505.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Eluze <[email-masked]>
Date: Fri, 28 Sep 2012 06:24:48 -0700 (PDT)

une dernière question à ce sujet:

il y a la possibilité d'écrire le code LilyPond dans une macro/fonction
scheme de la façon 

#{ … code LilyPond … #}

ce qui serait certainement bien venu chez les utilisateurs qui veulent
adapter cette fonction à leur goût.

#(define-markup-command (piece-and-opus layout props label arg1 arg2) 
       (symbol? markup? markup?) 
(let* ((space (+ (ly:output-def-lookup layout 'piece-and-opus-hspace 0) 
                  (ly:output-def-lookup layout 'indent 0))) 
        (stencil-even (interpret-markup layout props 
            #{ \markup \fill-line {$arg1 \line { $arg2 \hspace #space }}#}
            ))
        (stencil-odd (interpret-markup layout props 
            #{ \markup \fill-line {\line {\hspace #space $arg2 } $arg1 } #}
            ))
        (stencil-both (ly:stencil-add stencil-even stencil-odd))) 
   (ly:make-stencil 
     `(delay-stencil-evaluation 
        ,(delay (ly:stencil-expr 
           (let* ((table (ly:output-def-lookup layout 'label-page-table)) 
                  (page-number (if (list? table) 
                    (assoc-get label table) 
                    #f))) 
             (if (even? page-number) stencil-even stencil-odd))))) 
     (ly:stencil-extent stencil-both X)(ly:stencil-extent stencil-both Y))))

penses-tu qu'on pourrait ajouter cette fonction au LSR?

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578506.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Gilles <[email-masked]>
Date: Fri, 28 Sep 2012 16:05:56 +0200

> adapter cette fonction à leur goût.

Oui, on est plus habitué à cette forme.

> penses-tu qu'on pourrait ajouter cette fonction au LSR?
Étant donné que la fonction delay-stencil-evaluation n'est pas du tout  
documentée (elle est apparemment écrite en C et si j'ai bien compris elle  
est réservée à un usage interne !), un snippet traitant de cette fonction  
serait bienvenu. Mais le problème c'est que le LSR ne supporte qu'une page  
de score, et avec un seul bloc \score. Donc difficile à réaliser avec nos  
5 ou 6 bloc \score.
On peut évidemment mettre un lien externe vers le pdf résultant. Je peux  
éventuellement héberger ce pdf. J'ai déjà un répertoire prévu pour ça  (  
http://gillesth.free.fr/Lilypond/ )

-- 
Gilles

---

From: Eluze <[email-masked]>
Date: Fri, 28 Sep 2012 07:25:39 -0700 (PDT)

Gilles THIBAULT wrote
> de score, et avec un seul bloc \score. Donc difficile à réaliser avec nos  

il y déjà d'autres snippets qui devraient avoir plusieurs pages et qui n'en
montre que la première…

et pour décrire la fonction on peut se contenter d'une page en marquant bien
qu'il faut compiler l'exemple soi-même pour reconnaitre et jouir de tous les
effets!

> http://gillesth.free.fr/Lilypond/ )

oui, pourquoi pas!?

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578508.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Eluze <[email-masked]>
Date: Fri, 28 Sep 2012 07:47:38 -0700 (PDT)

il faudra en plus voir quel nom on donnera à cette fonction - comme on voit
dans mon exemple j'ai déjà renommer le tout en /piece-and-opus/ (car /hymn/
me semble trop spécifique pour ce que Raphaël voulait)

mais je ne suis pas convaincu que ce soit le meilleur nom, puisqu'on peut y
mettre tout ce que veut; peut-être quelque chose en direction
/scoreHeaderLine/ - ou quelqu'un a une meilleur idée?

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578509.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Gilles <[email-masked]>
Date: Fri, 28 Sep 2012 16:58:47 +0200

> quelqu'un a une meilleur idée?
Je suis très mauvais à ce jeux là.
Et je ne sais pas si d'autres nous suivent encore ... :-)

-- 
Gilles

---

From: Eluze <[email-masked]>
Date: Fri, 28 Sep 2012 08:49:15 -0700 (PDT)

> Et je ne sais pas si d'autres nous suivent encore ... :-)
exact - quel serait l'endroit pour continuer cette conversation? dev, 
user? les anglophones auraient peu-être des suggestion?!

on pourrait aussi le nommer scoreTitleMarkup/Two/ ou 
scoreTitleMarkup/Alternative/ ou - plus court - scoreTitleMarkup/Alt

/Eluze/
/

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578511.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Gilles <[email-masked]>
Date: Sat, 29 Sep 2012 09:11:02 +0200

> user? les anglophones auraient peu-être des suggestion?!
Je crois qu'on a quelques jours pour modifier un snippet. On peut  
simplement notifier la liste anglaise du  nouveau snippet. On verra bien  
ce qu'ils en pensent.

> scoreTitleMarkup/Alternative/ ou - plus court - scoreTitleMarkup/Alt

En fait, j'amais bien piece-opus car on voyais tout de suite de quoi on  
parlait.
piece-opus-alt ?

-- 
Gilles

---

From: "Frère Raphaël" <[email-masked]>
Date: Sat, 29 Sep 2012 09:50:41 +0200

Je ne suis qu'un novice dans lilypond.
Apparemment ma demande vous a interréssé.
Si la fonction que vous avez peu à peu mise au point est simple d'utilisation pour placer les titres dans le score,
est-ce que vous pouvez me dire comment la faire fonctionner dans le fichier de la partition ?
Est-ce que c'est encore plus simple d'utilisation que ce que Gilles avait proposé ?
Merci bien de votre réponse.
Raphael

De ： Eluze 
Date/heure ： 28-09-2012  17:49:28 
A ： lilypond-user-fr 
Cc ： 
Sujet ： Re: alignement opus et piece 

quelqu'un a une meilleur idÃ©e?

Je suis trÃ¨s mauvais Ã  ce jeux lÃ .
Et je ne sais pas si d'autres nous suivent encore ... :-)

exact - quel serait l'endroit pour continuer cette conversation? dev, user? les anglophones auraient peu-Ãªtre des suggestion?!

on pourrait aussi le nommer scoreTitleMarkupTwo ou scoreTitleMarkupAlternative ou - plus court - scoreTitleMarkupAlt

Eluze

View this message in context: Re: alignement opus et piece
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Eluze <[email-masked]>
Date: Sat, 29 Sep 2012 08:32:51 -0700 (PDT)

Frère Raphaël wrote
> Apparemment ma demande vous a interréssé.

oui, même beaucoup!

> Si la fonction que vous avez peu à peu mise au point est simple
> d'utilisation pour placer les titres dans le score, est-ce que vous pouvez
> me dire comment la faire fonctionner dans le fichier de la partition ?

je me permets d'envoyer une description provisoire avec le code comme nous
entendons les publier dans le LSR - s'il y a des textes pas très clairs nous
serions heureux d'entendre votre/vos écho/s!

% ------------------
*piece-opus* - an alternative score title markup with different layout on
even and odd pages

sometime it is desirable to display the header information differently on
even or odd pages - here is a way how to do it:

1. copy the piece-opus function  to your \include folder or directly into
your ….ly file

2. in the \paper section define 
  a) scoreTitleMarkup = … as shown in the code
  b) piece-opus-hspace = #number

3. before each \score add a *\label #'*/identifier/. the same identifier
must be used later in the \header section

4. define the \header field *piece-opus* as a /\markup/ with the 3 arguments
(1) label (2) arg1 (3) arg2

if another layout is desired you can adapt the lilypond code in the sections
*#{ … #}*

… and you can expand this function to more than 2 parameters!

(this function is based on an even/odd page function published by David
Nalesnik)

% -------------------------------------------

piece-opus.ly
<http://lilypond-french-users.1298960.n2.nabble.com/file/n7578514/piece-opus.ly>  

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578514.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Gilles <[email-masked]>
Date: Sat, 29 Sep 2012 20:23:56 +0200

> je me permets d'envoyer une description provisoire avec le code comme  
> nous entendons les publier dans le LSR

J'ai un petit doute : le LSR est bien en version 2.16 ?
S'il est encore en version 2.14, je ne suis pas absolument sûr que la  
fonction delay-stencil-evaluation existait déjà dans la 2.14 ...

-- 
Gilles

---

From: Eluze <[email-masked]>
Date: Sat, 29 Sep 2012 15:33:44 -0700 (PDT)

Gilles THIBAULT wrote
> fonction delay-stencil-evaluation existait déjà dans la 2.14 ...

scandale! /The LSR is currently running LilyPond version 2.14.2./ (vu sur
http://lsr.dsi.unimi.it/LSR/html/contributing.html

  et en effet cette fonction n'y est pas incorporée.

je vais tout de suite envoyer un bug-report à ce sujet!

et pour le texte, es-tu d'accord?
devrait-on ajouter quelques exemples comment varier les #{ … #}

(je ne sais pas s'il faut mentionner David ou ton nom comme créateur de
cette fonction)

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-opus-et-piece-tp7578429p7578517.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Gilles <[email-masked]>
Date: Sun, 30 Sep 2012 20:59:24 +0200

> je vais tout de suite envoyer un bug-report à ce sujet!
Si j'ai bien compris, il y  a des personnes qui ont commencé à mettre tous
les snippets à jours. Ce n'est pas forcément trivial, pour certains
snippets.

> et pour le texte, es-tu d'accord?
Oui pour tout, sauf pour :
     add a *\label #'*/identifier/
je trouve que rajouter plein de symboles compliquent un peu les choses.
Personnellement je préférerais quelque chose comme :
     \label = #'my-identifier

> devrait-on ajouter quelques exemples comment varier les #{ … #}
Je pense que non. On peut rajouter : "( see \markup documentations )".

> (je ne sais pas s'il faut mentionner David ou ton nom comme créateur de
Je ne souhaite pas le mien en tout cas. Le cœur de la fonction c'est
l'utilisation de delay-stencil-evaluation.

NB
Dans le code, on ne pourrait pas mettre plutôt piece-opus-hspace = #10 ou
piece-opus-hspace = #20, parce-que avec piece-opus-hspace = #33, on a
l'impression qu'il y a un problème d'alignement avec le title du book ?

-- 
Gilles