Subject: \footnote \tocItem

From: Olivier C <[email-masked]>
Date: Wed, 10 Apr 2019 01:31:41 -0700 (MST)

Bonjour,

Je désirerais savoir s'il est possible d'appeler les notes de bas de page
"musicales" toutes ensembles dans une partie "Liste des notes de bas de
page", et plus en bas de chaque page. En gros, définir une fonction
associant \footnote et \tocItem. Le \tocItem appelerait les \footnote au
lieu d'une table des matières.
Merci d'avance !
Olivier

--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/

---

From: Valentin Villenave <[email-masked]>
Date: Wed, 10 Apr 2019 20:32:31 +0000

> lieu d'une table des matières.

Comme d’habitude, la réponse est : a priori, oui.
Il faut pour cela aller se pencher sur les définitions de la commande
footnote (dans ly/music-functions-init.ly) et de tocItem (dans
ly/toc-init.ly). Commençons par cette dernière :

tocItem =
#(define-music-function (text) (markup?)
   (add-toc-item! 'tocItemMarkup text))

OK, ça nous fait juste une petite ligne à insérer dans la définition
de footnote. Voici la définition modifiée :

tocFootnote =
#(define-music-function (mark offset footnote item)
   ((markup?) number-pair? markup? symbol-list-or-music?)
   (let ((mus (make-music
               'FootnoteEvent
               'X-offset (car offset)
               'Y-offset (cdr offset)
               'automatically-numbered (not mark)
               'text (or mark (make-null-markup))
               'footnote-text footnote)))
;; une ligne insérée :
     (add-toc-item! 'tocItemMarkup footnote)
     (once (propertyTweak 'footnote-music mus item))))

Le seul test que j’ai fait fonctionne concernant le contenu des notes,
mais concernant le numéro de page c’est une autre paire de manches. Il
me semble me souvenir que la table des matières automatique fonctionne
en faisant deux passages (au premier on collecte le contenu, au
deuxième on récupère les numéros de pages), il faudrait aller regarder
en détail comment fonctionnent les footnotes (je soupçonne que c’est
un peu pareil).

Cordialement,
V.