Subject: Création de macro

From: Noël Dubray <[email-masked]>
Date: Mon, 4 Oct 2010 11:34:44 +0200

Bonjour,

J'ai besoin d'utiliser plusieurs fois un même groupe de commandes du type :

==== début exemple ====
\markup {
titre 1 (Sib)
}
maclef = { \clef G }
\score {
\transpose bes c''
\include "fichier1.ly"
}
\pagebreak
\markup {
titre 2 (Sib)
}
maclef = { \clef G }
\score {
\transpose bes c''
\include "fichier2.ly"
}
\pagebreak
\markup {
titre 3 (Sib)
}
maclef = { \clef G }
\score {
\transpose bes c''
\include "fichier3.ly"
}
\pagebreak
==== fin exemple ====

Est-il possible de créer une macro qui prendrait les chaines "titre X"
et "fichierX.ly" en arguments et qui réduirait mon exemple à :

==== début résultat ====
\supermacro "titre 1" "fichier1.ly"
\supermacro "titre 2" "fichier2.ly"
\supermacro "titre 3" "fichier3.ly"
==== fin résultat ====

J'ai joué pendant deux heures avec "define-music-function" et j'ai
bien peur que les fonctions créées avec cette commande ne fonctionnent
qu'à l'intérieur d'un "score", pas à l'extérieur. Toute explication
est la bienvenue.

Cordialement,

N. Dubray

---

From: Cécile Huneau <[email-masked]>
Date: Mon, 04 Oct 2010 18:13:58 +0200

Bonjour Noël,
J'avoue ma nullissimitude, mais en attendant mieux :

=== début exemple ===

myFile = #(define-music-function (parser location myMusic) (string?)
     #{ \clef G \transpose bes c'' { \include $myMusic } #} )

\markup "Titre1" \myFile #"Fichier1.ily"
\markup "Titre2" \myFile #"Fichier2.ily"
\markup "Titre3" \myFile #"Fichier3.ily"

=== fin exemple ===

Il y a fatalement quelque chose mieux à faire en arrangeant ce petit 
bout de code :
http://lsr.dsi.unimi.it/LSR/Item?id=630

Sinon dans ton exemple je remarque que tu écris maclef = { \clef G } un 
peu partout mais tu semble ne pas utiliser \maClef. C'est normal ?
Bonne journée !
Cécile

Le 04/10/2010 11:34, Noël Dubray a écrit :
> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> http://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>
>

---

From: Noël Dubray <[email-masked]>
Date: Tue, 5 Oct 2010 08:55:54 +0200

Merci pour ton exemple, je vais voir si je trouve un moyen d'inclure
le "\markup" dans la fonction. La definition de "\maclef" est utilisée
dans les fichiers inclus. Pour info, j'utilise ce genre de
construction pour générer les partitions pour plusieurs instruments en
gérant la transposition.

Noël

2010/10/4 Cécile Huneau <[email-masked]>:
> Il y a fatalement quelque chose mieux à faire en arrangeant ce petit bout de
> code :
> Sinon dans ton exemple je remarque que tu écris maclef = { \clef G } un peu
> partout mais tu semble ne pas utiliser \maClef. C'est normal ?
> Bonne journée !
> Cécile
>
>