|
From: | Eulogia |
Subject: | Fonction conditionnelle pour insérer une page blanche |
Date: | Thu, 8 Dec 2022 12:18:15 +0100 |
Bonjour, J'aimerais réaliser une fonction lilypond qui me paraitrait à priori relativement simple: Lorsque la fonction est appelée dans un \book, elle regarde quel est le numéro de page courant, si ce numéro est pair (ou impair selon un paramètre), elle insère une page blanche, sinon elle ne fait rien. J'arrive déjà à faire la page blanche avec ces instructions: \bookpart { \paper { oddFooterMarkup = "" evenFooterMarkup = "" } \markup { "" } } Et je peux récupérer le numéro de page courant avec ces instructions: \label #'firstScore numerodepage = \markup { \page-ref #'firstScore "0" "?" } Mais, même après avoir relu la doc extending.fr.pdf, je ne comprends pas comment je peux intégrer cela proprement dans une fonction scheme. Pour l'instant, je n'arrive à appeler ma page blanche conditionnelle qu'en enregistrant le code précédent dans un fichier ily et en utilisant une instruction trouvée assez laborieusement sur Internet: CreerPageVide = #(define-void-function (parser location)() ( if (string=? RecueilType "") (ly:parser-include-string (format #f "\\include \"~A\"\n" "PageVide.ily" )) ) ) Ce qui implique, qu'en faisant un code de ce genre, il ne me resterait plus qu'à trouver comment faire une conversion en number et un test modulo 2 sur numerodepage: \label #'firstScore numerodepage = \markup { \page-ref #'firstScore "0" "?" } \CreerPageVide Mais ce n'est pas franchement très élégant, et j'aimerais savoir s'il serait possible de compléter la doc avec: 1. Le traditionnel "Hello World" qui montre comment fonctionne l'intégration entre lilypond et scheme 2. Où peut-on trouver la définition de fonctions comme ly:parser-include-string? 3. Est-ce qu'il existe en scheme le moyen de récupérer directement le numéro de page courant, sans passer par un label et si oui, où peut-on trouver les spécificités de lilypond accessible via le scheme? Au plaisir, ben |
[Prev in Thread] | Current Thread | [Next in Thread] |