[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Numérotation des pages
From: |
Vincent Gay |
Subject: |
Re: Numérotation des pages |
Date: |
Mon, 11 Jul 2022 09:48:01 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 |
Le 11/07/2022 à 09:21, Vincent Gay a écrit :
Oui mais... question suivante : le numéro de page est bon mais pas
l'emplacement...
Et autant aller au bout de mon idée... Ce que je recherche c'est de
fusionner
BookPartPagesNumber.ly (le code pour une numérotation par \bookpart)
la numérotation N° de page / nombre de pages (code ci-dessous)
\paper {
oddHeaderMarkup = \markup {
\on-the-fly \print-page-number-check-first {
\fill-line { \null \concat { \fromproperty
#'page:page-number-string "/" \page-ref #'theLastPage "0" "?"} }
} }
evenHeaderMarkup = \markup {
\on-the-fly \print-page-number-check-first {
\fill-line { \concat { \fromproperty #'page:page-number-string
"/" \page-ref #'theLastPage "0" "?"} \null }
} }
}
qui suppose \label #'theLastPage en fin de score
Je ne sais vraiment pas par quel bout prendre le problème : si je
remplace \fromproperty #'page:page-number-string par oddMarkup #'arabic
ou evenMarkup #'arabic le "/" \page-ref reste toujours à droite.
Mon essai :
\version "2.22.2"
#(define part-first-pages '(0))
#(define (part-first-page? layout props)
(= (chain-assoc-get 'page:page-number props -1)
(ly:output-def-lookup layout 'first-page-number)))
#(define (reset-part-first-page layout props arg)
"Returns page-number-string, starting every bookpart with page-number 0.
Relying on the extern defined `part-first-pages'.
"
(set! props (prepend-alist-chain 'part-first-page '(0) props))
(let* ((real-page-number (chain-assoc-get 'page:page-number props -1))
(parts-page-number (- real-page-number (car part-first-pages))))
(if (part-first-page? layout props)
(set! part-first-pages (cons (1- real-page-number)
part-first-pages)))
(set! props
(cons
(list
(cons 'page:page-number-string (number->string
parts-page-number))
(cons 'page:page-number parts-page-number))
props))
(interpret-markup layout props arg)))
#(define ((print-part-first-page-as-one number-type) layout props arg)
(set! props
(cons
(list
(cons 'page:page-number-string
(let ((page-number
(chain-assoc-get 'page:page-number props -1)))
;(if (<= page-number 0) ""
(cond ((and (eq? number-type 'roman-lower) (>
page-number 0))
(fancy-format #f "~(~@r~)" page-number))
((and (eq? number-type 'roman-upper) (>
page-number 0))
(fancy-format #f "~@r" page-number))
((eq? number-type 'arabic)
(number->string page-number))
(else (number->string page-number)))));)
(cons 'page:page-number
(chain-assoc-get 'page:page-number props -1)))
props))
(interpret-markup layout props arg))
\paper {
print-first-page-number = ##t
ragged-bottom = ##t
#(set-paper-size "a6")
oddMarkup =
#(define-scheme-function (number-type)(symbol?)
#{
\markup
\column {
\fill-line {
" "
\on-the-fly #not-part-first-page \fromproperty
#'header:instrument
%% use in this order:
\on-the-fly #reset-part-first-page
\on-the-fly #(print-part-first-page-as-one number-type)
\on-the-fly #print-page-number-check-first
\fromproperty #'page:page-number-string
}
}
#})
evenMarkup =
#(define-scheme-function (number-type)(symbol?)
#{
\markup
\column {
\fill-line {
%% use in this order:
\on-the-fly #reset-part-first-page
\on-the-fly #(print-part-first-page-as-one number-type)
\on-the-fly #print-page-number-check-first
\fromproperty #'page:page-number-string
\on-the-fly #not-part-first-page \fromproperty
#'header:instrument
" "
}
}
#})
% oddHeaderMarkup = \oddMarkup #'arabic
% evenHeaderMarkup = \evenMarkup #'arabic
oddHeaderMarkup = \markup {
\on-the-fly \print-page-number-check-first {
\fill-line { \null \concat { \oddMarkup #'arabic "/" \page-ref
#'theLastPage "0" "?"} }
} }
evenHeaderMarkup = \markup {
\on-the-fly \print-page-number-check-first {
\fill-line { \concat { \evenMarkup #'arabic "/" \page-ref
#'theLastPage "0" "?"} \null }
} }
}
\header { title = "Essai" tagline = ##f }
\layout {
\context { \Score \omit BarNumber }
}
\book {
\bookpart {
\score {
\new Staff \with { instrumentName = "Part 1" }
{ c''1 \pageBreak c''1 \pageBreak c'' \label #'theLastPage }
}
}
\bookpart {
\paper { first-page-number = #0 }
\score {
\new Staff \with { instrumentName = "Part 2" }
{ c''1 \pageBreak c''1 \pageBreak c'' \label #'theLastPage }
}
}
}
--
Vincent Gay
Envoyé depuis mon saxo-phone :)
https://myrealbook.vintherine.org/ - http://photos.vintherine.org/
Re: Numérotation des pages, Jean Abou Samra, 2022/07/12