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

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

Positionnement vertical (écart numéro de page / titre)


From: Vincent Gay
Subject: Positionnement vertical (écart numéro de page / titre)
Date: Thu, 30 Sep 2021 11:36:50 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.1

Bonjour,

j'utilise une fonction qui m'a été communiqué par Pierre Perol-Schneider pour redémarrer la numérotation des pages à 1 à chaque début de \bookpart. Cela fonctionne parfaitement si ce n'est que ça introduit un espace supplémentaire au dessus du titre. Outre le coté inesthétique cela me provoque des sauts de pages à des endroits ou je ne le voudrais pas.

Dans l'exemple minimal ci-dessous il suffit de commenter / dé-commenter les 2 dernières lignes du bloc \paper { } pour voir la différence

Y-aurait-il un moyen de corriger ce petit problème ? merci d'avance

%---------- Code minimal -------------

\version "2.22.1"

#(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)))
                (cond ((eq? number-type 'roman-lower)
                       (fancy-format #f "~(~@r~)" page-number))
                      ((eq? number-type 'roman-upper)
                       (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 {
  indent = 0\mm
  ragged-last-bottom = ##f
  ragged-bottom = ##t
  ragged-last = ##f
  markup-system-spacing = #'((basic-distance . 15)
                             (minimum-distance . 6)
                             (padding . 0))
  score-system-spacing = #'((basic-distance . 23)
                            (minimum-distance . 20)
                            (padding . 5))
  print-first-page-number = ##t
  oddMarkup =
  #(define-scheme-function (number-type)(symbol?)
    #{
      \markup
        \column {
          \fill-line {
            " "
            \on-the-fly #not-part-first-page \fromproperty #'header:instrument
            \on-the-fly #print-page-number-check-first
              %% use in this order:
              \on-the-fly #reset-part-first-page
              \on-the-fly #(print-part-first-page-as-one number-type)
              \fromproperty #'page:page-number-string
          }
          \vspace #5
        }
    #})

  evenMarkup =
  #(define-scheme-function (number-type)(symbol?)
    #{
      \markup
        \column {
          \fill-line {
            \on-the-fly #print-page-number-check-first
              %% use in this order:
              \on-the-fly #reset-part-first-page
              \on-the-fly #(print-part-first-page-as-one number-type)
              \fromproperty #'page:page-number-string
            \on-the-fly #not-part-first-page \fromproperty #'header:instrument
            " "
          }
          \vspace #5
        }
    #})

% commenter dé-commenter les 2 lignes suivantes pour voir l'espace supplémentaire introduit par la fonction
      oddHeaderMarkup = \oddMarkup #'arabic
      evenHeaderMarkup = \evenMarkup #'arabic

}
\header {
  title = "title"
  composer = "composer"
}

\book {
  \bookpart {
    \score {
      \relative c' {
        \repeat unfold 16 { c4 }
      }
    }
  }
    \bookpart {
    \score {
      \relative c' {
        \repeat unfold 16 { c4 }
      }
    }
  }
    \bookpart {
    \score {
      \relative c' {
        \repeat unfold 16 { c4 }
      }
    }
  }
}


Vincent Gay
Envoyé depuis mon saxo-phone :)
https://myrealbook.vintherine.org/ - http://photos.vintherine.org/

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

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