Recueil - gestion du nombre de système par page

Bonjour à tous,

Je suis en train d'essayer de faire un recueil de partitions, et je n'arrive pas à gérer le nombre de systèmes par page.

J'aimerai que sur chaque page, il y ait 6 systèmes au maximum.
De plus, s'il y a un nouveau titre sur la page (changement de mouvement), il n'y ait plus que 5 systèmes de musique.

(dans mon idée, la ligne de titre serait comptée en tant que 6ème système)

si j'utilise page-count=9 : ça fonctionne à peu près ici, parce qu'il n'y a que 4 morceaux avec uniquement des rondes. si j'utilise cette commande dans mon recueil, ça serait compliqué d'estimer le nombre de pages que je souhaite au final.... c'est pour celà que j'aimerai pouvoir régler automatiquement le nombre de système par page
De plus, le journal me donne cette info étrange :

Dessin des systèmes...

Sortie mise en page vers « /tmp/lilypond-SNA562 »...

Avertissement : Détection d'une valeur infini ou non numérique. Substitution par 0.0

Avertissement : Détection d'une valeur infini ou non numérique. Substitution par 0.0

Avertissement : Détection d'une valeur infini ou non numérique. Substitution par 0.0

Avertissement : Détection d'une valeur infini ou non numérique. Substitution par 0.0

Conversion à « test-recueil.pdf »...

Suppression de « /tmp/lilypond-SNA562 »...

Compilation menée à son terme, avec succès.

J'ai essayé d'utiliser :

min-systems-per-page = 5
max-systems-per-page = 6

Dans ce cas, la compilation reste bloquée sur 100% sans terminer et je suis obligé d'arrêter la compilation à la main

Répartition de la musique sur 8 à 9 pages...

Abandon lilypond 2.20.0 [test-recueil.ly]...

Arrêté avec le code de retour 15.

voici un code simplifié de la structure de mon recueil (c'est le même en pièce jointe)
(il y aura une première de couverture, en \bookpart)

\version "2.20.0"
\language "français"

\paper { print-all-headers = ##t
ragged-last-bottom = ##f
tocTitleMarkup = \markup \huge \column { \fill-line { \null "Table des matières" \null } \hspace #1 }
tocItemMarkup = \tocItemWithDotsMarkup
tocActMarkup = \markup \large \column {
\fill-line { \null \italic \fromproperty #'toc:text \null }
}
}

tocAct =
#(define-music-function (parser location text) (markup?)
(add-toc-item! 'tocActMarkup text))

\paper { left-margin = 15\mm
right-margin = 10\mm
top-margin = 10\mm
bottom-margin = 10\mm
%page-count = 9
%min-systems-per-page = 5
%max-systems-per-page = 6
}

\book {

%{
\paper { first-page-number = #-1 }

%% petit bookpart de couverture :
\bookpart {
\header { copyright = ##f tagline = ##f }
%% bloc \paper local :
\paper { left-margin = 0
top-margin = -2\mm
bookTitleMarkup = \markup { \epsfile #X #120 #"Duos-Couverture.eps" }
evenHeaderMarkup = ##f
oddHeaderMarkup = ##f }
\pageBreak
\markup \null }
%}

\markuplist \table-of-contents
\pageBreak

% 001 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\tocItem \markup "n° 1 - do"
\score { \new StaffGroup <<
\new Staff \with { instrumentName = "Violoncelle 1" shortInstrumentName = "1." }
{ \clef bass \repeat unfold 150 do1 }
\new Staff \with { instrumentName = "Violoncelle 2" shortInstrumentName = "2." }
{ \clef bass \repeat unfold 150 do1 \bar "|." } >>
\header { title = "1" subtitle = "do" } }
\markup { \vspace #2 }

% 002 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\tocItem \markup "n° 2 - ré"
\score { \new StaffGroup <<
\new Staff \with { instrumentName = "Violoncelle 1" shortInstrumentName = "1." }
{ \clef bass \repeat unfold 150 ré1 }
\new Staff \with { instrumentName = "Violoncelle 2" shortInstrumentName = "2." }
{ \clef bass \repeat unfold 150 ré1 \bar "|." } >>
\header { title = "2" subtitle = "ré" } }
\markup { \vspace #2 }

% 003 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\tocItem \markup "n° 3 - mi"
\score { \new StaffGroup <<
\new Staff \with { instrumentName = "Violoncelle 1" shortInstrumentName = "1." }
{ \clef bass \repeat unfold 150 mi1 \bar "|." }
\new Staff \with { instrumentName = "Violoncelle 2" shortInstrumentName = "2." }
{ \clef bass \repeat unfold 150 mi1 \bar "|." } >>
\header { title = "3" subtitle = "mi" } }
\markup { \vspace #2 }

% 004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\tocAct \markup { }
\tocItem \markup "n° 4 - fa"
\score { \new StaffGroup <<
\new Staff \with { instrumentName = "Violoncelle 1" shortInstrumentName = "1." }
{ \clef bass \repeat unfold 150 fa1 \bar "|." }
\new Staff \with { instrumentName = "Violoncelle 2" shortInstrumentName = "2." }
{ \clef bass \repeat unfold 150 fa1 \bar "|." } >>
\header { title = "4" subtitle = "fa" } }
\markup { \vspace #2 }

}%Fin du book

test-recueil.ly (3.15 KB)

C'est un des problèmes non encore résolus… enfin pas complètement.

J'ai trouvé ce code sur le forum anglais de LilyPond… mais autant te dire
d'emblée que je n'en suis pas convaincu…

% Avec le code ci-dessous, il est possible de définir à la fois le nombre de
mesures par système + le nombre de systèmes par page.
#(define (expand-repetitions arg)
;; 4*5 --> 4 4 4 4 4
;; (at any level of nesting)
  (fold-right
    (lambda (elem prev)
            (cond ((pair? elem)
                   (cons (expand-repetitions elem) prev))
                  ((symbol? elem)
                   (let* ((str (symbol->string elem))
                          (split (string-split str #\*))
                          (split (map (lambda (elem) (string->number elem))
split)))
                     (append (make-list (cadr split) (car split))
                             prev)))
                  (else (cons elem prev))))
    '()
    arg))

#(define ((bars-per-line-systems-per-page-engraver lst) ctx)
  (let* ((bars-and-systems? (any pair? lst))
         (working-copy (expand-repetitions lst))
         (systems-per-page
           (if bars-and-systems?
               (car working-copy)
               #f))
         (total
           (if systems-per-page
               (1+ (car systems-per-page))
               (1+ (car working-copy))))
         (last-measure-seen (ly:context-property ctx 'internalBarNumber)))
  `((stop-translation-timestep
      . ,(lambda (trans)
          (let ((internal-bar (ly:context-property ctx 'internalBarNumber))
                (current-col (ly:context-property ctx
'currentCommandColumn)))
            ;; we are only interested in the first NonMusicalPaperColumn of
            ;; each measure
            (if (and (> internal-bar last-measure-seen)
                     (= (remainder internal-bar total) 0)
                     (pair? working-copy))
                (begin
                  (set! (ly:grob-property current-col
'line-break-permission) 'force)
                  (set! last-measure-seen internal-bar)
                  (if bars-and-systems?
                      (begin
                        (if (null? (cdr systems-per-page))
                            (begin
                              (set! (ly:grob-property current-col
'page-break-permission) 'force)
                              (if (pair? (cdr working-copy))
                                  (begin
                                    (set! working-copy (cdr working-copy))
                                    (set! systems-per-page (car
working-copy)))
                                  (set! working-copy '())))
                            (set! systems-per-page (cdr systems-per-page)))
                        (set! total (+ total (car systems-per-page))))
                      (begin
                        (if (null? (cdr working-copy))
                            (set! working-copy lst)
                            (begin
                              (set! working-copy (cdr working-copy))))
                              (set! total (+ total (car
working-copy)))))))))))))

%{\layout {
  \context {
    \Score
    \consists #(bars-per-line-systems-per-page-engraver '((1 6) (4 4 4)
(1)))
% 3 pages: 1° page = 2 systèmes, 1°système avec 1 mesure, 2° système avec 4
mesures
% 2° page avec 3 systèmes de 4 mesures....
  }
}

···

-----
Cordialement

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

Merci pour l'idée !

Le problème c'est que mon recueil fera environ 150 pages (il en fait 128 pour l'instant, avec la mise en page automatique)

ça va être un peu long de définir le nombre de systèmes par page + le nombre de mesures pas système ^^'

Mais s'il n'y a pas d'autre solution, je retrousserai mes manches !

···

De : Bernard Meylan <****@****>
À : lilypond-user-fr@gnu.org
Sujet : Re: Recueil - gestion du nombre de système par page
Date : 06/12/2020 12:51:07 Europe/Paris

C'est un des problèmes non encore résolus… enfin pas complètement.

J'ai trouvé ce code sur le forum anglais de LilyPond… mais autant te dire
d'emblée que je n'en suis pas convaincu…

% Avec le code ci-dessous, il est possible de définir à la fois le nombre de
mesures par système + le nombre de systèmes par page.
#(define (expand-repetitions arg)
;; 45 --> 4 4 4 4 4
;; (at any level of nesting)
(fold-right
(lambda (elem prev)
(cond ((pair? elem)
(cons (expand-repetitions elem) prev))
((symbol? elem)
(let
((str (symbol->string elem))
(split (string-split str #*))
(split (map (lambda (elem) (string->number elem))
split)))
(append (make-list (cadr split) (car split))
prev)))
(else (cons elem prev))))
'()
arg))

#(define ((bars-per-line-systems-per-page-engraver lst) ctx)
(let* ((bars-and-systems? (any pair? lst))
(working-copy (expand-repetitions lst))
(systems-per-page
(if bars-and-systems?
(car working-copy)
#f))
(total
(if systems-per-page
(1+ (car systems-per-page))
(1+ (car working-copy))))
(last-measure-seen (ly:context-property ctx 'internalBarNumber)))
`((stop-translation-timestep
. ,(lambda (trans)
(let ((internal-bar (ly:context-property ctx 'internalBarNumber))
(current-col (ly:context-property ctx
'currentCommandColumn)))
;; we are only interested in the first NonMusicalPaperColumn of
;; each measure
(if (and (> internal-bar last-measure-seen)
(= (remainder internal-bar total) 0)
(pair? working-copy))
(begin
(set! (ly:grob-property current-col
'line-break-permission) 'force)
(set! last-measure-seen internal-bar)
(if bars-and-systems?
(begin
(if (null? (cdr systems-per-page))
(begin
(set! (ly:grob-property current-col
'page-break-permission) 'force)
(if (pair? (cdr working-copy))
(begin
(set! working-copy (cdr working-copy))
(set! systems-per-page (car
working-copy)))
(set! working-copy '())))
(set! systems-per-page (cdr systems-per-page)))
(set! total (+ total (car systems-per-page))))
(begin
(if (null? (cdr working-copy))
(set! working-copy lst)
(begin
(set! working-copy (cdr working-copy))))
(set! total (+ total (car
working-copy)))))))))))))

%{\layout {
\context {
\Score
\consists #(bars-per-line-systems-per-page-engraver '((1 6) (4 4 4)
(1)))
% 3 pages: 1° page = 2 systèmes, 1°système avec 1 mesure, 2° système avec 4
mesures
% 2° page avec 3 systèmes de 4 mesures....
}
}


Cordialement

Bernard

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

Bonjour,

···

Le 06/12/2020 à 12:18, ****@**** a écrit :

Bonjour à tous,

Je suis en train d'essayer de faire un recueil de partitions, et je n'arrive pas à gérer le nombre de systèmes par page.

J'aimerai que sur chaque page, il y ait 6 systèmes au maximum.
De plus, s'il y a un nouveau titre sur la page (changement de mouvement), il n'y ait plus que 5 systèmes de musique.

(dans mon idée, la ligne de titre serait comptée en tant que 6ème système)

si j'utilise page-count=9 : ça fonctionne à peu près ici, parce qu'il n'y a que 4 morceaux avec uniquement des rondes. si j'utilise cette commande dans mon recueil, ça serait compliqué d'estimer le nombre de pages que je souhaite au final.... c'est pour celà que j'aimerai pouvoir régler automatiquement le nombre de système par page
De plus, le journal me donne cette info étrange :

Dessin des systèmes...

Sortie mise en page vers « /tmp/lilypond-SNA562 »...

Avertissement : Détection d'une valeur infini ou non numérique. Substitution par 0.0

Avertissement : Détection d'une valeur infini ou non numérique. Substitution par 0.0

Avertissement : Détection d'une valeur infini ou non numérique. Substitution par 0.0

Avertissement : Détection d'une valeur infini ou non numérique. Substitution par 0.0

Conversion à « test-recueil.pdf »...

Suppression de « /tmp/lilypond-SNA562 »...

Compilation menée à son terme, avec succès.

Le problème provient de

\tocAct \markup { }

Pourquoi ceci ? LilyPond est dépassé quant à l'espacement, de la même manière qu'avec \markup \box "", par exemple. Si vous souhaitez vraiment un espacement vertical supplémentaire, mettez \markup " " (avec une espace), voire \markup \vspace #5.1, avec une valeur réglable.

J'ai essayé d'utiliser :

min-systems-per-page = 5
max-systems-per-page = 6

Dans ce cas, la compilation reste bloquée sur 100% sans terminer et je suis obligé d'arrêter la compilation à la main

Répartition de la musique sur 8 à 9 pages...

Abandon lilypond 2.20.0 [test-recueil.ly]...

Arrêté avec le code de retour 15.

Il s'agit d'un bug, que Kevin Barry est justement en train de résoudre en ce moment même :

https://gitlab.com/lilypond/lilypond/-/merge_requests/529

L'idée, c'est que LilyPond teste différentes configurations de sauts de page et leur attribue une note de laideur. Comme elle n'apprécie pas l'espacement que vous avez choisi, qu'elle trouve trop étalé, elle donne des notes très mauvaises à toutes les configurations qu'elle essaie, ce qui la conduit à augmenter le nombre de systèmes toujours plus dans l'espoir, évidemment vain, de découvrir une configuration acceptable.

Avec le code de Kevin, elle finit par se rend compte que cela ne sert à rien et abandonne la partie.

Comme ceci touche au cœur de LilyPond en C++, je n'ai rien de mieux à vous proposer pour l'instant que

\paper {
page-breaking = #ly:page-turn-breaking
}

Cela semble fonctionner, même si des avertissements étranges sont émis.

Si d'aventure les sauts ne vous convenaient pas, il faudrait ajouter des \break à la main ou à l'aide du code de Bernard.

Cordialement,
Jean

Merci pour la réponse !

La commande :

\paper {
page-breaking = #ly:page-turn-breaking

}
ne donne pas un résultat satisfaisant (dommage !)
jai essayé de renseigner un system-count dans le \layout de chaque pièce pour voir si je pouvais m'en sortir comme ça.... mais ce n'est pas satisfaisant non plus

Le problème provient de \tocAct \markup { }

Pourquoi ceci ?

J'avais trouvé cette formulation dans la doc (je n'aurais pas inventé ça tout seul...)
effectivement, si je remplace par \tocAct \markup \vspace, je n'ai plus les messages d'erreur

Je cherchais à aérer un peu la table des matières : sauter une ligne toutes les 10 entrées

J'ai une autre question par rapport à la table des matières :\paper

tocTitleMarkup = \markup \huge \column {
\fill-line { \null "Table des matières" \null } \hspace #1 }
tocItemMarkup = \tocItemWithDotsMarkup
tocActMarkup = \markup \large \column {
\fill-line { \null \italic \fromproperty #'toc:text \null }}

Avec ce code, dans la table des matières, mes 100 pièces se répartissent sur 3 pages (1/3 des pièces sur chaque page).
Le problème, c'est que les titres sont en haut de la page, ce qui laisse un espace "blanc" (1/4 de page) en bas de chaque page.
Existe-t-il un moyen de ne pas répartir les pièces par tiers (toutes à la suite, avec un grand blanc seulement à la fin de la table des matières)

Actuellement, j'ai rajouté une grande photo blanche (en .eps) à la fin de la table des matières (juste avant le \pageBreak ), donc, dans ce cas, la table des matières se place correctement

PS : "elle" ? Lilypond serait féminin ?

ça expliquerait que j'ai tant de problèmes : au lieu de regarder lilypond droit dans les yeux, d'homme à homme, je devrais peut-être essayer de la séduire ?? je vais tester ... :slight_smile:

···

Le 06/12/2020 à 12:18, ****@**** a écrit :

Bonjour à tous,

Je suis en train d'essayer de faire un recueil de partitions, et je n'arrive pas à gérer le nombre de systèmes par page.

J'aimerai que sur chaque page, il y ait 6 systèmes au maximum.
De plus, s'il y a un nouveau titre sur la page (changement de mouvement), il n'y ait plus que 5 systèmes de musique.

(dans mon idée, la ligne de titre serait comptée en tant que 6ème système)

si j'utilise page-count=9 : ça fonctionne à peu près ici, parce qu'il n'y a que 4 morceaux avec uniquement des rondes. si j'utilise cette commande dans mon recueil, ça serait compliqué d'estimer le nombre de pages que je souhaite au final.... c'est pour celà que j'aimerai pouvoir régler automatiquement le nombre de système par page
De plus, le journal me donne cette info étrange :

Dessin des systèmes...

Sortie mise en page vers « /tmp/lilypond-SNA562 »...

Avertissement : Détection d'une valeur infini ou non numérique. Substitution par 0.0

Avertissement : Détection d'une valeur infini ou non numérique. Substitution par 0.0

Avertissement : Détection d'une valeur infini ou non numérique. Substitution par 0.0

Avertissement : Détection d'une valeur infini ou non numérique. Substitution par 0.0

Conversion à « test-recueil.pdf »...

Suppression de « /tmp/lilypond-SNA562 »...

Compilation menée à son terme, avec succès.

Le problème provient de

\tocAct \markup { }

Pourquoi ceci ? LilyPond est dépassé quant à l'espacement, de la même manière qu'avec \markup \box "", par exemple. Si vous souhaitez vraiment un espacement vertical supplémentaire, mettez \markup " " (avec une espace), voire \markup \vspace #5.1, avec une valeur réglable.

J'ai essayé d'utiliser :

min-systems-per-page = 5
max-systems-per-page = 6

Dans ce cas, la compilation reste bloquée sur 100% sans terminer et je suis obligé d'arrêter la compilation à la main

Répartition de la musique sur 8 à 9 pages...

Abandon lilypond 2.20.0 [test-recueil.ly]...

Arrêté avec le code de retour 15.

Il s'agit d'un bug, que Kevin Barry est justement en train de résoudre en ce moment même :

https://gitlab.com/lilypond/lilypond/-/merge_requests/529

L'idée, c'est que LilyPond teste différentes configurations de sauts de page et leur attribue une note de laideur. Comme elle n'apprécie pas l'espacement que vous avez choisi, qu'elle trouve trop étalé, elle donne des notes très mauvaises à toutes les configurations qu'elle essaie, ce qui la conduit à augmenter le nombre de systèmes toujours plus dans l'espoir, évidemment vain, de découvrir une configuration acceptable.

Avec le code de Kevin, elle finit par se rend compte que cela ne sert à rien et abandonne la partie.

Comme ceci touche au cœur de LilyPond en C++, je n'ai rien de mieux à vous proposer pour l'instant que

\paper {
page-breaking = #ly:page-turn-breaking
}

Cela semble fonctionner, même si des avertissements étranges sont émis.

Si d'aventure les sauts ne vous convenaient pas, il faudrait ajouter des \break à la main ou à l'aide du code de Bernard.

Cordialement,
Jean

Bonjour,
Je n'arrive pas à faire fonctionner cette astuce

j'ai d'abord rajouté un % à la deuxième ligne

%mesures par système + le nombre de systèmes par page.

et je n'ai pas compris comment l'utiliser ...

%{
\layout {
\context {
\Score
\consists #(bars-per-line-systems-per-page-engraver '((1 6) (4 4 4)
(1)))
% 3 pages: 1° page = 2 systèmes, 1°système avec 1 mesure, 2° système avec 4 mesures
% 2° page avec 3 systèmes de 4 mesures....
}
}
%}

j'ai supposé que c'était cette partie que je devais intégrer à mon code
et que je devais modifier (1 6) (4 4 4) (1)

mais je ne suis pas sûr :

je comprends "2° page avec 3 systèmes de 4 mesures"

mais pas "1° page = 2 systèmes, 1°système avec 1 mesure, 2° système avec 4 mesures"
j'aurais dit 1er système avec 1 mesure, 2ème système avec 6 mesures
et donc on aurait 3ème page avec 1 système de 1 mesure ?

De plus, je ne peux rien vérifier car j'ai une erreur :

\paper est nécessaire pour définir les paramètres de la page

\layout { \context { \Score

là je sèche ^^

(j'ai déjà un \paper pour les dimensions de la page)

···

De : Bernard Meylan <****@****>
À : lilypond-user-fr@gnu.org
Sujet : Re: Recueil - gestion du nombre de système par page
Date : 06/12/2020 12:51:07 Europe/Paris

C'est un des problèmes non encore résolus… enfin pas complètement.

J'ai trouvé ce code sur le forum anglais de LilyPond… mais autant te dire
d'emblée que je n'en suis pas convaincu…

% Avec le code ci-dessous, il est possible de définir à la fois le nombre de
mesures par système + le nombre de systèmes par page.
#(define (expand-repetitions arg)
;; 45 --> 4 4 4 4 4
;; (at any level of nesting)
(fold-right
(lambda (elem prev)
(cond ((pair? elem)
(cons (expand-repetitions elem) prev))
((symbol? elem)
(let
((str (symbol->string elem))
(split (string-split str #*))
(split (map (lambda (elem) (string->number elem))
split)))
(append (make-list (cadr split) (car split))
prev)))
(else (cons elem prev))))
'()
arg))

#(define ((bars-per-line-systems-per-page-engraver lst) ctx)
(let* ((bars-and-systems? (any pair? lst))
(working-copy (expand-repetitions lst))
(systems-per-page
(if bars-and-systems?
(car working-copy)
#f))
(total
(if systems-per-page
(1+ (car systems-per-page))
(1+ (car working-copy))))
(last-measure-seen (ly:context-property ctx 'internalBarNumber)))
`((stop-translation-timestep
. ,(lambda (trans)
(let ((internal-bar (ly:context-property ctx 'internalBarNumber))
(current-col (ly:context-property ctx
'currentCommandColumn)))
;; we are only interested in the first NonMusicalPaperColumn of
;; each measure
(if (and (> internal-bar last-measure-seen)
(= (remainder internal-bar total) 0)
(pair? working-copy))
(begin
(set! (ly:grob-property current-col
'line-break-permission) 'force)
(set! last-measure-seen internal-bar)
(if bars-and-systems?
(begin
(if (null? (cdr systems-per-page))
(begin
(set! (ly:grob-property current-col
'page-break-permission) 'force)
(if (pair? (cdr working-copy))
(begin
(set! working-copy (cdr working-copy))
(set! systems-per-page (car
working-copy)))
(set! working-copy '())))
(set! systems-per-page (cdr systems-per-page)))
(set! total (+ total (car systems-per-page))))
(begin
(if (null? (cdr working-copy))
(set! working-copy lst)
(begin
(set! working-copy (cdr working-copy))))
(set! total (+ total (car
working-copy)))))))))))))

%{\layout {
\context {
\Score
\consists #(bars-per-line-systems-per-page-engraver '((1 6) (4 4 4)
(1)))
% 3 pages: 1° page = 2 systèmes, 1°système avec 1 mesure, 2° système avec 4
mesures
% 2° page avec 3 systèmes de 4 mesures....
}
}


Cordialement

Bernard

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

Bonjour,

Merci pour la réponse !

La commande :
\paper {
page-breaking = #ly:page-turn-breaking
}
ne donne pas un résultat satisfaisant (dommage !)

Avec min-systems-per-page et max-systems-per-page à côté ? Dommage, effectivement, qu'est ce qui cloche exactement ?

jai essayé de renseigner un system-count dans le \layout de chaque pièce pour voir si je pouvais m'en sortir comme ça.... mais ce n'est pas satisfaisant non plus

Le problème provient de \tocAct \markup { }

Pourquoi ceci ?

J'avais trouvé cette formulation dans la doc (je n'aurais pas inventé ça tout seul...)
effectivement, si je remplace par \tocAct \markup \vspace, je n'ai plus les messages d'erreur
Je cherchais à aérer un peu la table des matières : sauter une ligne toutes les 10 entrées

Dans ce cas, effectivement, mieux vaut \null ou bien un \vspace. La commande n'est pas prévue pour le cas du \markup vide.

J'ai une autre question par rapport à la table des matières :
\paper
tocTitleMarkup = \markup \huge \column {
\fill-line { \null "Table des matières" \null } \hspace #1 }
tocItemMarkup = \tocItemWithDotsMarkup
tocActMarkup = \markup \large \column {
\fill-line { \null \italic \fromproperty #'toc:text \null }}

Avec ce code, dans la table des matières, mes 100 pièces se répartissent sur 3 pages (1/3 des pièces sur chaque page).
Le problème, c'est que les titres sont en haut de la page, ce qui laisse un espace "blanc" (1/4 de page) en bas de chaque page.
Existe-t-il un moyen de ne pas répartir les pièces par tiers (toutes à la suite, avec un grand blanc seulement à la fin de la table des matières)

Pas trouvé, désolé... Ce qui est curieux, c'est que les entrées consomment toute la place disponible sur chaque page dans ce cas :

\markuplist \column-lines #(map (lambda (x) #{ \markup a #}) (iota 120))

Mais dès lors que l'on ajoute une nouvelle page, elles se répartissent par tiers comme vous le décrivez :

\markuplist \column-lines #(map (lambda (x) #{ \markup a #}) (iota 120))
\pageBreak
\markup "AAA"

Le réglage de ragged-bottom est inopérant.

Je n'ai pas le temps en ce moment pour fouiller plus. Peut-être les autres ont-ils des idées ? Vous pourriez aussi essayer d'écrire à la liste internationale.

Actuellement, j'ai rajouté une grande photo blanche (en .eps) à la fin de la table des matières (juste avant le \pageBreak ), donc, dans ce cas, la table des matières se place correctement

PS : "elle" ? Lilypond serait féminin ?
ça expliquerait que j'ai tant de problèmes : au lieu de regarder lilypond droit dans les yeux, d'homme à homme, je devrais peut-être essayer de la séduire ?? je vais tester ... :slight_smile:

C'est selon. Sur cette liste comme dans les listes anglophones, le nom LilyPond est souvent pris au féminin. Personnellement, je le fais car il commence par « Lily », ce qui invite à divers jeux de mots récurrents sur cette liste, dans le goût de « Je m'appelle Pond. Lily Pond », etc.

Cordialement,
Jean

···

Le 08/12/2020 à 06:37, ****@**** a écrit :

ah !
je n'avais pas compris qu'il fallait garder min-system et max-system ^^'
je les avait remplacés par page-breaking ....

Je re-teste quand je rentre, merci beaucoup !

···

La commande :
\paper {
page-breaking = #ly:page-turn-breaking
}
ne donne pas un résultat satisfaisant (dommage !)

Avec min-systems-per-page et max-systems-per-page à côté ? Dommage,
effectivement, qu'est ce qui cloche exactement ?