bookpart-level-page-numbering et \table-of-contents (numérotation des bookpart et table des matières)

Cher(e)s expert(e)s en Lilypond,
Je vais faire appel à vous une nouvelle fois pour m'aider à trouver la solution à un problème qui n'est pas à ma portée.
Lorsque je fais une partition en PDF, les parties instrumentales sont précédées d'une table des matières. Elles commencent toutes à la page "1/?" où "?" indique le numéro de la dernière page calculé par un \label, grâce à la solution proposée par LucDR, ici, lors d'un précédent post.
Malheureusement, du coup, je perds les références des numéros de pages de chaque début et de fin des \bookpart des instruments pour la table des matières (\table-of-contents).
Voici le MWE pour mieux illustrer ma question.

\version "2.24.3"
music_Violon = { \repeat unfold 500 {c''4} \label #'lastpage_Vn }
music_Hautbois = { \repeat unfold 1000 {a'4} \label #'lastpage_Hb }
music_Violone = { \clef bass \repeat unfold 1500 {f,4} \label #'lastpage_Vne }
\book {
  \markuplist \table-of-contents
  % Bookpart pour le violon
  \bookpart {
    \tocItem \markup "Violon" 
    \music_Violon
    \paper {
      bookpart-level-page-numbering = ##t
      print-all-headers = ##f
      print-page-number = ##f
      evenFooterMarkup = \markup {
        \fill-line {
          \tiny {
            \fill-line {
              \line { \concat { "Page "\fromproperty #'page:page-number-string " of " \page-ref #'lastpage_Vn "00" "?" } }
            }
          }
        }
      }
      oddFooterMarkup = \evenFooterMarkup
    }
  }
  % Bookpart Hautbois
  \bookpart {
    \tocItem \markup "Hautbois" 
    \music_Hautbois
    \paper {
      bookpart-level-page-numbering = ##t
      print-all-headers = ##f
      print-page-number = ##f
      evenFooterMarkup = \markup {
        \fill-line {
          \tiny {
            \fill-line {
              \line { \concat { "Page "\fromproperty #'page:page-number-string " of " \page-ref #'lastpage_Hb "00" "?" } }
            }
          }
        }
      }
      oddFooterMarkup = \evenFooterMarkup
    }
  } 
  \bookpart {
    \tocItem \markup "Violone"
    \music_Violone
    \paper {
      bookpart-level-page-numbering = ##t
      print-all-headers = ##f
      print-page-number = ##f
      evenFooterMarkup = \markup {
        \fill-line {
          \tiny {
            \fill-line {
              \line { \concat { "Page "\fromproperty #'page:page-number-string " of " \page-ref #'lastpage_Vne "00" "?" } }
            }
          }
        }
      }
      oddFooterMarkup = \evenFooterMarkup
    }
  }  
}

Si je commente les lignes bookpart-level-page-numbering = ##t, j'obtiens bien la table des matières désirée mais je perds les références des pages de chaque partie instrumentale.

Ma question est donc courte, mais pas forcément simple je crois : comment faire pour avoir le beurre et l'argent du beurre ?

Merci pour votre précieuse et constante aide,

Rémy

Rémy,
Je ne suis pas certain de comprendre la question (car le comportement de
Lilypond me paraît cohérent) :

  • si tu veux une table des matières avec un numéro de pages qui file du
    début à la fin du document (ce qui correspond à ton code avec les
    bookpart-level-page-numbering = ##t commentés), alors chaque partie ne
    pourra pas commencer à 1.
  • si en revanche, elles commencent toutes à la page un, alors c'est
    normal que la table des matières indiquent page 1 à chaque partie.

Pourrais-tu préciser ?
Bonne journée,
Luc

Merci LucDR de ta réponse.
Tu as raison, je n'ai pas été précis. J'ai voulu simplifier le MWE et je me suis entre-méler dans mes explications. Voici le code légèrement modifié :

\version "2.24.3"
music_Violon = { \repeat unfold 500 {c''4} \label #'lastpage_Vn }
music_Hautbois = { \repeat unfold 1000 {a'4} \label #'lastpage_Hb }
music_Violone = { \clef bass \repeat unfold 1500 {f,4} \label #'lastpage_Vne }
\book {
  % Bookpart de la première page
  \bookpart {
    \paper {
      bookpart-level-page-numering = ##f
      tocItemMarkup = \markup \fill-line { 
        \with-color "blue"
        \underline { \fromproperty #'toc:text }
      }
    }    
    \markuplist \table-of-contents
  }
  % Bookpart pour le violon
  \bookpart {
    \tocItem \markup "Violon" 
    \music_Violon
    \paper {
      bookpart-level-page-numbering = ##t
      print-all-headers = ##f
      print-page-number = ##f
      evenFooterMarkup = \markup {
        \fill-line {
          \tiny {
            \fill-line {
              \line { \concat { "Page "\fromproperty #'page:page-number-string " of " \page-ref #'lastpage_Vn "00" "?" } }
            }
          }
        }
      }
      oddFooterMarkup = \evenFooterMarkup
    }
  }
  % Bookpart Hautbois
  \bookpart {
    \tocItem \markup "Hautbois" 
    \music_Hautbois
    \paper {
      bookpart-level-page-numbering = ##t
      print-all-headers = ##f
      print-page-number = ##f
      evenFooterMarkup = \markup {
        \fill-line {
          \tiny {
            \fill-line {
              \line { \concat { "Page "\fromproperty #'page:page-number-string " of " \page-ref #'lastpage_Hb "00" "?" } }
            }
          }
        }
      }
      oddFooterMarkup = \evenFooterMarkup
    }
  } 
  \bookpart {
    \tocItem \markup "Violone"
    \music_Violone
    \paper {
      bookpart-level-page-numbering = ##t
      print-all-headers = ##f
      print-page-number = ##f
      evenFooterMarkup = \markup {
        \fill-line {
          \tiny {
            \fill-line {
              \line { \concat { "Page "\fromproperty #'page:page-number-string " of " \page-ref #'lastpage_Vne "00" "?" } }
            }
          }
        }
      }
      oddFooterMarkup = \evenFooterMarkup
    }
  }  
}

Tu verras que la table des matières ne contient plus les numéros de page, mais des liens clickables qui pointent vers le début de chaque partie instrumentale.
Comme j'essayai lamentablement de l'expliquer, lorsque la variable bookpart-level-page-numbering est à False, alors le lien de la TOC renvoie vers la première page de la partie, mais le nombre total de de page de chaque partie correspond à la somme du nombre de pages de chaque partie ; alors que si il contient True, le nombre total de chaque partie est correct (c'est la solution que tu m'avais proposé) mais le lien ne fonctionne plus. Il ne renvoie plus vers la première page de chaque partie mais vers la première page du \book.

J'espère avoir été plus clair....

Merci de ton aide,

Rémy

Manifestement c'est un bug et je constate aussi qu'il est réglé en version 2.26.

Ok. Merci Jean,
Je vais attendre la MaJ de mon Ubuntu.
Merci et bon WE!
Rémy

Si tu utilises Frescobaldi, ça ne devrait pas être nécessaire. Dans les préférences, il y a un bouton pour télécharger automagiquement la version de LilyPond que tu veux.

Merci Jean. J'utilise La version 3.3.0 de Frescobaldi et je n'ai pas accès à cette fonctionnalité :

Merci et bonne journée !

Rémy

Dans ce cas, tu peux télécharger la version 2.26 depuis Téléchargement (LilyPond – la notation musicale pour tous), ouvrir l'archive, la mettre dans un endroit stable, cliquer sur le bouton « Flèche vers le haut » à droite de la zone de texte dans ta capture d'écran, sélectionner le fichier .../lilypond-2.26.0/bin/lilypond, et le tour devrait être joué.

Je vais essayer.
Merci Jean !

Rémy