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

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

Fonction conditionnelle pour insérer une page blanche


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

reply via email to

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