Subject: Re: Lilypond : un livret CD

From: Gerard <[email-masked]>
Date: Sat, 1 Aug 2020 08:58:18 +0200

Bonjour tout le monde,

Je reste dans mon fil sur le livret entièrement réalisé avec Lilypond 
bien que la question puisse être en dehors.

J'allonge ma liste de morceaux dans le livret et je voudrais conclure 
par une phrase du genre "Ce recueil contient X morceaux" où X serait une 
variable (incrémentée automatiquement bien sûr).

D'où la question : est-il possible d'avoir une variable "compteur" ? 
Comment l'initialiser et comment l'incrémenter...

Cerise sur le gâteau si possible ; j'utilise \tocItem \markup "Titre" 
pour ma table des matières (avec la fonction ci-dessous). Une solution 
pour que cette variable apparaissent devant "Titre" ?

   % présentation de la table des matières
   tocItemMarkup = \markup \huge \fill-line {
    \fromproperty #'toc:text \fromproperty #'toc:page
   }
   tocItemMarkup = \tocItemWithDotsMarkup

Merci et bien cordialement

(bien sûr je n'ai pas trouvé de piste dans la liste, le LSR, la doc... )

Gérard

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 1 Aug 2020 10:18:05 +0200

Bonjour Gérard,
Il y a un compteur sur le LSR : http://lsr.di.unimi.it/LSR/Item?id=543
Mais il est limité par un bug (cf.
http://lilypond.1069038.n5.nabble.com/Toc-with-counter-td214472.html)
Sinon tu peux faire quelque chose comme :

\version "2.20.0"

#(define ctrToc 0)
#(define-markup-command (ctrToc layout props) ()
   (set! ctrToc (1+ ctrToc))
   (interpret-markup layout props (markup (number->string ctrToc))))

#(define counter 0)
#(define-markup-command (counter layout props) ()
   (set! counter (1+ counter))
   (interpret-markup layout props (markup (number->string counter))))

#(define-markup-command (ctrTot layout props) ()
   (set! counter counter)
   (interpret-markup layout props (markup (number->string counter))))

\paper {

\markuplist \table-of-contents
\markup\vspace #3
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\markup { Ce livret contient \ctrTot pièces }

Cordialement,
Pierre

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 1 Aug 2020 10:24:13 +0200

Envoyé trop vite ; donc, à nouveau :

\version "2.20.0"

#(define ctrToc 0)

#(define counter 0)

\paper {

\markuplist \table-of-contents
\markup\vspace #3
\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\markup { Ce livret contient \ctrTot pièces. }

Cordialement,
Pierre

---

From: survoje <[email-masked]>
Date: Sat, 1 Aug 2020 17:44:37 +0200

Nickel, ça marche super ! et mon livret est un peu mieux  "fini"...

Pour l'anecdote, j'ai modifié \tocItem \markup { Pièce \counter } en 
{\counter \mapiece} {mapiece en variable}

Et pour un index, pas possible ?... J'avais prévu de faire un livret 
pour l'atelier (20-25 morceaux) mais si ça marche aussi bien, je peux 
faire un book de 1000 airs ! Du coup, un index sur "origine" me plaîrait 
bien. J'ai vu une demande LFU de 2016 qui n'a pas eu de réponse, une 
plus vieille de 2012 qui envoyait sur le forum allemand 
<https://archiv.lilypondforum.de/index.php?topic=1040.10%3bwap2>... mais 
je n'ai rien compris !

Merci Pierre

G.

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 1 Aug 2020 21:22:04 +0200

Gérard,
As-tu vu : http://lsr.di.unimi.it/LSR/Item?id=763 ?

Le sam. 1 août 2020 à 17:44, survoje <[email-masked]> a écrit :

> Et pour un index, pas possible ?... J'avais prévu de faire un livret pour
> l'atelier (20-25 morceaux) mais si ça marche aussi bien, je peux faire un
> book de 1000 airs ! Du coup, un index sur "origine" me plaîrait bien. J'ai
> vu une demande LFU de 2016 qui n'a pas eu de réponse, une plus vieille de
> 2012 qui envoyait sur le forum allemand

---

From: Gerard <[email-masked]>
Date: Sun, 16 Aug 2020 10:48:28 +0200

Bonjour tout le monde,

Résumé : au départ, dans ce fil, j'étais parti avec l'idée d'un livret 
CD, puis ça a évolué vers un simple livret A4 entièrement réalisé avec 
Lilypond, puis l'ajout d'une table des matières, puis l'ajout d'un index !

Comme je suis arrivé à mes fins (merci la liste !), et pour ceux que ça 
pourrait intéresser, je partage un document minimal pour réaliser un tel 
livret, uniquement avec Lilypond donc et comportant une table des 
matières et un index.

Bien cordialement,

Gérard