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

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

Re: Signets de pages pdf


From: Ya Gloops
Subject: Re: Signets de pages pdf
Date: Thu, 8 Sep 2022 06:27:50 +0000 (UTC)

Merci Jean pour ta réponse !
Il me sembla avoir trouvé une incompatibilité entre une partie du code 
"page-number" et "toc-colonne"

 \version "2.23.0"

#(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 }
    }
  }
}

%Plus d'erreur si commenté...

#(let ((default-table-of-contents make-table-of-contents-markup-list))
   (define-markup-list-command (table-of-contents layout props) ()
     (let* ((result (interpret-markup-list layout props 
(default-table-of-contents)))
            (alist (ly:output-def-lookup layout 'label-alist-table))
            (parent (ly:output-def-parent layout)))
       (when (not (null? parent))
         (ly:output-def-set-variable! parent 'label-alist-table alist))
       result)))

%jusqu'ici !

\paper {
  number-pages-per-bookpart = ##f %% à décommenter si souhaité
  print-page-total = ##t %% à enlever si non souhaité
  first-page-number = -3
}

\markuplist \table-of-contents
\bookpart{
  \tocItem \markup A
  { c' }
  \pageBreak
  { c' }
}
\bookpart{
  \tocItem \markup B
  { c' }
  \pageBreak
  { c' }
}








Le mercredi 7 septembre 2022 à 18:57:35 UTC+2, Jean Abou Samra 
<jean@abou-samra.fr> a écrit : 





Le 05/09/2022 à 12:57, Ya Gloops a écrit :
> Es-ce-que j'ai loupé quelque chose ou le first-page-number ne fonctionne plus 
> ?


Comme tu n'utilises pas bookpart-level-page-numbering, la
numérotation des pages est gérée au niveau du book entier,
pas des bookparts, donc il faut mettre first-page-number
dans un \paper à l'intérieur du \book mais en dehors d'un
bookpart.

Par contre, il y a des problèmes avec l'outline du PDF,
que j'ai ajouté au tracker :
https://gitlab.com/lilypond/lilypond/-/issues/6419
(mais je n'ai pas le temps de chercher une solution de
contournement pour l'instant).


Cordialement,
Jean



reply via email to

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