lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Parution de LilyPond 2.23.12


From: Jean Abou Samra
Subject: Re: Parution de LilyPond 2.23.12
Date: Wed, 24 Aug 2022 19:05:39 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0

Le 24/08/2022 à 16:02, Ya Gloops a écrit :
Super Jean Merci pour la nouvelle...
Juste une petite déception car ta fonction "Numérotation des pages" fonctionnait super même avec la 
version "2.23.11" mais plus avec la "2.23.12"

En effet, car en ajoutant bookpart-level-page-numbering, j'ai fait
quelques simplifications, qui nécessitent des ajustements dans ce
code.

En plus, comme bookpart-level-page-numbering est justement maintenant
présente dans LilyPond, il n'y a plus besoin de la partie du code
qui l'implémente, ce qui laisse juste l'implémentation de print-page-total.

Note que dans le code initial que j'avais donné, la variable pour la
numérotation au niveau des \bookpart s'appelait number-pages-per-bookpart,
mais en l'intégrant à LilyPond, j'ai fait en sorte qu'il soit en plus
possible de la régler au niveau de chaque bookpart, donc le « per-bookpart »
me paraissait ne plus coller. Je l'ai renommée en bookpart-level-page-numbering.
Par conséquent, en 2.23.12, il faut utiliser le code modifié ci-dessous,
et rechercher/remplacer pour changer number-pages-per-bookpart en
bookpart-level-page-numbering.


\version "2.23.12"

#(define-markup-command (page-number layout props) ()
   (if (ly:output-def-lookup layout 'print-page-total #f)
       (let* ((make-stil
               (lambda (total-string)
                 (stack-stencils
                  X
                  RIGHT
                  0.0
                  (map (lambda (m)
                         (interpret-markup layout props m))
                         (list (chain-assoc-get 'page:page-number-string props)
                               "/"
                               total-string)))))
              (gauge-stil (make-stil "0")))
         (ly:make-stencil
          `(delay-stencil-evaluation
            ,(delay
              (ly:stencil-expr (make-stil (ly:output-def-lookup layout 
'page:page-total)))))
          (ly:stencil-extent gauge-stil X)
          (ly:stencil-extent gauge-stil Y)))
       (interpret-markup layout props (make-fromproperty-markup 
'page:page-number-string))))


\paper {
  #(use-modules (srfi srfi-2) ; and-let*
                (lily page))
  page-post-process =
  #(lambda (paper pages)
     (let ((per-bookpart (ly:output-def-lookup paper 
'bookpart-level-page-numbering #f)))
       (for-each
        (lambda (page)
          (let ((numbering-paper
                 (or (and-let* (((not per-bookpart))
                                (parent (ly:output-def-parent paper))
                                ((not (null? parent))))
                        parent)
                     paper))
                (page-number (page-property page 'page-number)))
            (ly:output-def-set-variable!
             numbering-paper
             'page:page-total
             (number->string
              (max (if per-bookpart
                       (1+ (- page-number (ly:output-def-lookup numbering-paper 
'first-page-number)))
                       page-number)
                   (string->number (ly:output-def-lookup numbering-paper 'page:page-total 
"0")))))))
       pages)))
  oddHeaderMarkup = \markup {
    \if \should-print-page-number {
      \fill-line { \null \concat { \page-number } }
    }
  }
  evenHeaderMarkup = \markup {
    \if \should-print-page-number {
      \fill-line { \concat { \page-number } \null }
    }
  }
}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]