[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Numérotation des pages
From: |
Jean Abou Samra |
Subject: |
Re: Numérotation des pages |
Date: |
Fri, 22 Jul 2022 23:11:28 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 |
Le 22/07/2022 à 22:58, Ya Gloops a écrit :
Bonsoir !
S'il n'y a pas de bookpart on obtient une erreur, c'est normal ?
Gilles
Effectivement, c'était un autre bug dans mon code… Je me reprends
(bis repetita placent) :
\version "2.22.2"
%% Fichier inclus
\paper {
make-header =
#(lambda (layout scopes page-number is-last-bookpart
is-bookpart-last-page)
((marked-up-headfoot 'oddHeaderMarkup 'evenHeaderMarkup)
layout scopes
(if (ly:output-def-lookup layout 'number-pages-per-bookpart #f)
(1+ (- page-number (ly:output-def-lookup layout
'first-page-number)))
page-number)
is-last-bookpart is-bookpart-last-page))
}
#(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))
page-post-process =
#(lambda (paper pages)
(let ((per-bookpart (ly:output-def-lookup paper
'number-pages-per-bookpart #f)))
(for-each
(lambda (page)
(let ((local-paper
(or (and-let* (((not per-bookpart))
(parent (ly:output-def-parent paper))
((not (null? parent))))
parent)
paper))
(page-number (ly:prob-property page 'page-number)))
(ly:output-def-set-variable!
local-paper
'page:page-total
(number->string
(max (if per-bookpart
(1+ (- page-number (ly:output-def-lookup
local-paper 'first-page-number)))
page-number)
(string->number (ly:output-def-lookup local-paper
'page:page-total "0")))))))
pages)))
oddHeaderMarkup = \markup {
\on-the-fly \print-page-number-check-first {
\fill-line { \null \concat { \page-number } }
}
}
evenHeaderMarkup = \markup {
\on-the-fly \print-page-number-check-first {
\fill-line { \concat { \page-number } \null }
}
}
}
%% Fichier principal
\paper {
number-pages-per-bookpart = ##t %% à décommenter si souhaité
print-page-total = ##t %% à enlever si non souhaité
print-first-page-number = ##t
}
\header { title = "Essai numérotation bookparts" }
%\bookpart {
\score {
\new Staff \with { instrumentName = "Part 1" }
{ c''1 \pageBreak 1 \pageBreak 1 \label bookpartI }
}
%}
%\bookpart {
\score {
\new Staff \with { instrumentName = "Part 2" }
{ c''1 \pageBreak c''1 \label bookpartII }
}
%}
Cordialement,
Jean
Re: Numérotation des pages, Jean Abou Samra, 2022/07/12
Re: Numérotation des pages, Jean Abou Samra, 2022/07/13