[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
- Version 2.23.80 : define vs ly:parser-defined,
Gilles Thibault <=