Subject: Validité d'un snipet

From: Bernard Meylan <[email-masked]>
Date: Wed, 23 Feb 2022 11:15:45 +0100

Bonjour à tout le monde!

J'essaye de reproduire ce snipet: 
https://lsr.di.unimi.it/LSR/Item?id=1075 pour pouvoir faire apparaître 
l'armure soit entre parenthèse, soit entre crochets. Mais chez moi 
(version 2.22.1), ni les parenthèses, ni les crochets ne sont visibles. 
Cela est-il dû au code utilisé pour le snipet, ou à autre chose?

Bernard

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 23 Feb 2022 12:35:57 +0100

Le 23/02/2022 à 11:15, Bernard Meylan a écrit :
> (version 2.22.1), ni les parenthèses, ni les crochets ne sont 
> visibles. Cela est-il dû au code utilisé pour le snipet, ou à autre chose?
>

À l'heure actuelle, la version qui tourne sur la LSR n'est
pas 2.22 mais 2.18, une version ancienne, donc. Malheureusement,
le mainteneur de la LSR a plus ou moins disparu de la circulation.
Au milieu du snippet, dans le \markup \score, il y a la ligne

{ \key $p-2 $scale-def }

qu'il faut changer en

{ \key $p-2 $scale-def s4 }

Cordialement,
Jean

---

From: Bernard Meylan <[email-masked]>
Date: Wed, 23 Feb 2022 12:57:04 +0100

Bonjour Jean!
> { \key $p-2 $scale-def s4 }

…ce que j'ai fait… malheureusement sans effet. Pas grave, je vais garder 
\parenthesize \key c \major même si la parenthèse est plus petite que le 
bécarre d'armure (c'est pour cela que je voulais utiliser le snipet…)

Bernard

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 23 Feb 2022 13:25:19 +0100

Le 23/02/2022 à 12:57, Bernard Meylan a écrit :
> …ce que j'ai fait… malheureusement sans effet.

Ah bon ? Cela fonctionne chez moi, sur l'exemple du
snippet. Pouvez-vous poster un exemple où cela ne
marche pas ?

> Pas grave, je vais garder \parenthesize \key c \major même si la 
> parenthèse est plus petite que le bécarre d'armure (c'est pour cela 
> que je voulais utiliser le snipet…)

Là, je suis perdu. Avec \parenthesize \key c \major, il
me semble que vous allez vous retrouver avec deux paires
de parenthèses et une erreur de programmation, comme dans
cet exemple :

\version "2.22.1"

{
   \key d \minor
   d'1
   \parenthesize \key c \major
   c'1
}

Ceci parce que \key c \major crée en fait deux objets
graphiques, un KeyCancellation qui contient le bécarre,
et un KeySignature qui contiendrait les nouveaux bémols
et dièses s'il y en avait, mais qui en l'occurrence (tonalité
de do majeur) est vide. Par contre, dans les versions de
développement actuelles, c'est à dire la série des 2.23, on
peut faire :

\version "2.23.6"

{
   \key d \minor
   d'1
   \parenthesize Staff.KeyCancellation
   \key c \major
   c'1
}

Et dans tous les cas, on peut toujours rajouter
une dérogation pour agrandir les parenthèses, à
savoir

   \override Staff.ParenthesesItem.font-size = -2

pour la 2.22, ou

   \override Staff.Parentheses.font-size = -2

en 2.23.

Cordialement,
Jean

---

From: Bernard Meylan <[email-masked]>
Date: Wed, 23 Feb 2022 14:02:39 +0100

> snippet. Pouvez-vous poster un exemple où cela ne
Cela vient peut-être du fait que je passe de fa majeur à do majeur, et 
qu'il s'agit de mettre entre crochets/parenthèses non pas une armure à 
proprement parler, mais l'annulation de l'armure précédente… donc de 
«parenthésiser» le bécarre. J'ai testé en passant de fa majeur à sib 
majeur, et cette fois les crochets sont bien visibles.
> de parenthèses

Vous avez raison… c'est en utilisant votre \override 
Staff.ParenthesesItem.font-size = 1 que j'ai vu l'autre paire de 
parenthèses en début de système… cela m'avait complètement échappé…

Donc je me retrouve au point de départ. J'ai tenté divers détours pour 
mettre ce bécarre entre parenthèses, sans résultat.

Bernard

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 23 Feb 2022 15:11:01 +0100 (CET)

> Le 23/02/2022 14:02, Bernard Meylan <[email-masked]> a écrit :

> mettre ce bécarre entre parenthèses, sans résultat.

En 2.22, il n'y a pas de moyen archi-simple, cela a
été arrangé (par moi) en 2.23. Soit vous installez la
version 2.23.6 (voir mon message récent à la liste sur
sa parution), soit vous restez en 2.22 et utilisez quelque
chose dans ce genre :

\version "2.22.1"

{
  \key f \major
  f'1
  \once \override Staff.KeyCancellation.stencil =
    #(grob-transformer
      'stencil
      (lambda (grob original)
        (parenthesize-stencil original 0.15 0.5 0.3 0.4)))
  \key c \major
  c'1
}

Cordialement,
Jean