Subject: Alignement numéros de mesure entourés

From: Jean ABOU SAMRA <[email-masked]>
Date: Sat, 25 May 2019 11:55:14 +0200

Bonjour à tous,

Dans une partition, je cherche à obtenir des numéros de mesure à intervalles réguliers entourés d'un cercle. J'ai consulté la documentation :
http://lilypond.org/doc/v2.19/Documentation/notation/bars.fr.html#bar-numbers <http://lilypond.org/doc/v2.19/Documentation/notation/bars.fr.html#bar-numbers>
Et appliqué les exemples comme ceci :

\version "2.21.0"

{
% rendre tous les numéros de mesure imprimables
\override Score.BarNumber.break-visibility = ##(#t #t #t)
% afficher les numéros de mesure toutes les trois mesures
\set Score.barNumberVisibility = #(every-nth-bar-number-visible 3)
% entourer les numéros d'un cercle
\override Score.BarNumber.stencil = #(make-stencil-circler 0.1 0.25 ly:text-interface::print)

\repeat unfold 50 c'1
}

résultat sur http://lilybin.com/5xch7x/1 <http://lilybin.com/5xch7x/1>

Toutefois, la mise en page n'est pas très satisfaisante car les cercles ne sont pas bien positionnés au dessus des barres de mesure mais un peu à gauche.
Je suis un peu surpris car l'exemple de la documentation concernant les indications de repère entourées fonctionne bien :

{
\set Score.markFormatter = #format-mark-circle-numbers
c'1 \mark \default
c'1
}

Il semble que des styles soient prédéfinis pour \mark mais pas pour les numéros de mesure. Comment faire pour que les numéros de mesure aient le même alignement vertical sur la mesure ?
Un grand merci pour votre aide,
Jean Abou Samra.

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 25 May 2019 16:09:03 +0200

Le sam. 25 mai 2019 à 12:01, Jean ABOU SAMRA <[email-masked]> a écrit :

> Il semble que des styles soient prédéfinis pour \mark mais pas pour les
> numéros de mesure.
>
Oui.

Comment faire pour que les numéros de mesure aient le même alignement
> vertical sur la mesure ?

Corriger l’alignement :

Ex.

\version "2.21.0"

{
% rendre tous les numéros de mesure imprimables
\override Score.BarNumber.break-visibility = ##(#t #t #t)
% afficher les numéros de mesure toutes les trois mesures
\set Score.barNumberVisibility = #(every-nth-bar-number-visible 3)
% entourer les numéros d'un cercle
\override Score.BarNumber.stencil = #(make-stencil-circler 0.1 0.25
ly:text-interface::print)
\override Score.BarNumber.self-alignment-X = 0
\set Score.currentBarNumber = 1111
\repeat unfold 50 c'1
}

Cordialement,
Pierre

---

From: Christophe Pochon <[email-masked]>
Date: Sat, 25 May 2019 15:56:20 +0200

Peut-être avec :

\override Score.BarNumber.self-alignment-X = #CENTER

Christophe Pochon

Le sam. 25 mai 2019 à 11:55, Jean ABOU SAMRA <[email-masked]> a écrit :

> Bonjour à tous,
>
> Dans une partition, je cherche à obtenir des numéros de mesure à
> intervalles réguliers entourés d'un cercle. J'ai consulté la documentation :
>
> http://lilypond.org/doc/v2.19/Documentation/notation/bars.fr.html#bar-numbers
> résultat sur http://lilybin.com/5xch7x/1
>
> Toutefois, la mise en page n'est pas très satisfaisante car les cercles ne
> sont pas bien positionnés au dessus des barres de mesure mais un peu à
> gauche.
> Je suis un peu surpris car l'exemple de la documentation concernant les
> indications de repère entourées fonctionne bien :
>
> {
> numéros de mesure. Comment faire pour que les numéros de mesure aient le
> même alignement vertical sur la mesure ?
> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>

---

From: Jean ABOU SAMRA <[email-masked]>
Date: Sat, 25 May 2019 18:11:12 +0200

Merci beaucoup à tous deux !

Le résultat est parfait pour les numéros du milieu de la portée. Malheureusement, la modification fait aussi rentrer les numéros de début de système en collision avec les crochets de mon StaffGroup, je comprends donc pourquoi par défaut les numéros de mesure s'alignent à droite (voir http://lilypond.org/doc/v2.19/Documentation/internals/barnumber <http://lilypond.org/doc/v2.19/Documentation/internals/barnumber> à self-alignment-X).

Mais bon, pour ce que cela représente et vu les délais dont je dispose, je m'en satisfais très bien. Évidemment, je pourrais truffer mon code de \override pour changer l'alignement à chaque début de système, mais cela risque fort de devenir très pénible, et je n'ai pas le temps pour l'instant de me plonger dans la mécanique interne. Peut-être un jour j'essaierai de décaler automatiquement les numéros de mesure du début d'un système… En attendant je me contente sans peine de ce \override.

Cordialement,
Jean Abou Samra.

> Le 25 mai 2019 à 16:09, Pierre Perol-Schneider <[email-masked]> a écrit :
> 
> 
> 
> Le sam. 25 mai 2019 à 12:01, Jean ABOU SAMRA <[email-masked] <mailto:[email-masked]>> a écrit :
>   
> Il semble que des styles soient prédéfinis pour \mark mais pas pour les numéros de mesure.
> Oui.
> 
> Comment faire pour que les numéros de mesure aient le même alignement vertical sur la mesure ?
> 
> Corriger l’alignement :
> 
> Ex.
> 
> \version "2.21.0"
> 
> {

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 25 May 2019 18:50:34 +0200

Une solution provisoire : \override Score.BarNumber.break-visibility =
##(#t #t #f)

Cordialement,
Pierre

Le sam. 25 mai 2019 à 18:11, Jean ABOU SAMRA <[email-masked]> a écrit :

> Le résultat est parfait pour les numéros du milieu de la portée.
> Malheureusement, la modification fait aussi rentrer les numéros de début de
> système en collision avec les crochets de mon StaffGroup, je comprends donc
> pourquoi par défaut les numéros de mesure s'alignent à droite (voir
> http://lilypond.org/doc/v2.19/Documentation/internals/barnumber à
> self-alignment-X).
>
> Mais bon, pour ce que cela représente et vu les délais dont je dispose, je
> m'en satisfais très bien. Évidemment, je pourrais truffer mon code de
> \override pour changer l'alignement à chaque début de système, mais cela
> risque fort de devenir très pénible, et je n'ai pas le temps pour l'instant
> de me plonger dans la mécanique interne. Peut-être un jour j'essaierai de
> décaler automatiquement les numéros de mesure du début d'un système… En
> attendant je me contente sans peine de ce \override.
>
> Cordialement,
> Jean Abou Samra.
>
> Le 25 mai 2019 à 16:09, Pierre Perol-Schneider <
> [email-masked]> a écrit :
>
>
>

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sun, 26 May 2019 09:14:52 +0200

On s’approche (avec l'aide d4aaron de la liste internationale) :

\version "2.21.0"
{
  \override Score.BarNumber.break-visibility = ##(#f #t #t) % <= !!
  \set Score.barNumberVisibility = #(every-nth-bar-number-visible 3)
  \override Score.BarNumber.stencil = #(make-stencil-circler 0.1 0.25
ly:text-interface::print)
  \override Score.BarNumber.self-alignment-X = #(lambda (grob) (+
(ly:item-break-dir grob)))
  \set Score.currentBarNumber = 1111
  \repeat unfold 50 c'1
}

Cordialement,
Pierre

Le sam. 25 mai 2019 à 18:50, Pierre Perol-Schneider <
[email-masked]> a écrit :

>> Mais bon, pour ce que cela représente et vu les délais dont je dispose,
>> je m'en satisfais très bien. Évidemment, je pourrais truffer mon code de

---

From: Jean ABOU SAMRA <[email-masked]>
Date: Sun, 26 May 2019 10:35:59 +0200

Très bien ! Merci beaucoup.
L'idée de item-break-dir est bonne. Toutefois, j'ai remis tous les commutateurs de break-visibility à #t car je trouvais plus élégant d'afficher les numéros en fin de ligne, et ceux de fin de ligne ne sont plus très bien alignés, donc j'ai réécrit un peu le code :

\version "2.21.0"

\layout {
  \context {
    \Score
    \override BarNumber.break-visibility = ##(#t #t #t)
    %% barNumberVisibility = #(every-nth-bar-number-visible 3) % for purpose of demonstration -- uncomment if desired
    \override BarNumber.stencil = #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
    \override BarNumber.self-alignment-X =
    #(lambda (grob)
      (define bd (ly:item-break-dir grob))
        (cond
          ( (= bd 1) 0.8)
          ( (= bd 0) 0)
          ( (= bd -1) 0) )) 
  }
}

% now bar numbers are nicely aligned
\new StaffGroup <<
  { \repeat unfold 50 c'1 }
  { \repeat unfold 50 c'1 }

J'ai vu votre message sur la liste internationale — à laquelle je venais tout juste de m'abonner —, je vais répondre à Aaron Hill pour le remercier aussi.
Cordialement,
Jean Abou Samra.

> Le 26 mai 2019 à 09:14, Pierre Perol-Schneider <[email-masked]> a écrit :
> 
>   \override Score.BarNumber.self-alignment-X = #(lambda (grob) (+ (ly:item-break-dir grob)))
> Le sam. 25 mai 2019 à 18:50, Pierre Perol-Schneider <[email-masked] <mailto:[email-masked]>> a écrit :
> Une solution provisoire : \override Score.BarNumber.break-visibility = ##(#t #t #f)
> 
> Cordialement,
> Pierre
> 
> Le sam. 25 mai 2019 à 18:11, Jean ABOU SAMRA <[email-masked] <mailto:[email-masked]>> a écrit :
>> Le 25 mai 2019 à 16:09, Pierre Perol-Schneider <[email-masked] <mailto:[email-masked]>> a écrit :
>> 
>> 
>>