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

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

Version 2.23.80 : define vs ly:parser-defined


From: Gilles Thibault
Subject: Version 2.23.80 : define vs ly:parser-defined
Date: Wed, 26 Oct 2022 15:30:56 +0200
User-agent: Webmail Free/1.3.3

Bonjour tout le monde.
Question en court :
Peut-on employer indifféremment, pour définir une variable scheme simple,
      define (fournit par guile)
   et ly:parser-define! (fonction scheme fournit par Lilypond) ?

Explications :
J'avais défini dans mes fichiers de config des variables par exemple de la manière suivante :
#(if (not (defined? 'textSize))
     (define textSize -1))

J'ajustais tous les objets Lilypond ayant une propriété font-size en fonction de cette variable :
   \override TextScript.font-size = #textSize
   \override MetronomeMark.font-size = #textSize
   \override BarNumber.font-size = #(1- textSize)  % 1 point de moins
   etc...
Si pour une musique donnée, je trouvais la taille des textes encore trop grosse, je n'avais qu'à rajouter juste avant mon fichier config à inclure
  textSize = #-2
  \include "mon_fichier_config.ly"
et tous les font-size étaient ajustées en prenant en compte cette nouvelle valeur

La version 2 de Guile vient avec des restrictions pour la fonction define
  (voir le message de Jean ABOU
https://lists.gnu.org/archive/html/lilypond-user-fr/2022-10/msg00051.html )
La solution devrait être
  #(define textSize (if (defined? 'textSize)
                        textSize
                        -1))

Pour éviter de redéfinir textSize à la valeur qu'il a déjà, je voudrais garder la syntaxe que j'avais avant, mais en utilisant ly:parser-defined!

#(if (not (defined? 'textSize))
     (ly:parser-define! 'textSize -1))

... ce qui semble fonctionner.

Comme j'ai un très grand nombre de fichiers à modifier, je voudrais être sûr que cette solution est pérenne. Il n'y a pas de projet de restriction de syntaxe pour ly:parser-define! ?

--
Gilles



reply via email to

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