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: Ya Gloops
Subject: Re: Parution de LilyPond 2.23.12
Date: Wed, 24 Aug 2022 14:02:53 +0000 (UTC)

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" 
Gilles


\version "2.23.11"
%\version "2.23.12"


\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 {
    \if \should-print-page-number {
      \fill-line { \null \concat { \page-number } }
    }
  }


  evenHeaderMarkup = \markup {
    \if \should-print-page-number {
      \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 }
    }
%}








Le mercredi 24 août 2022 à 10:05:13 UTC+2, Jean Abou Samra <jean@abou-samra.fr> 
a écrit : 





Bonjour à toutes et à tous,

La version 2.23.12 de LilyPond vient d'être publiée. Comme toutes
les versions de la série 2.23.x, c'est une version instable de
développement, qui contient les changements effectués jusqu'ici en
vue de la prochaine version stable, LilyPond 2.24. Même si je ne
ferai pas une annonce à chaque nouvelle version (il y en a à peu près
toutes les quatre semaines), les changements dans celle-ci valent bien
un post.

La nouveauté la plus notable dans cette version est l'introduction
d'un moteur de rendu fondé sur la bibliothèque Cairo. Je m'explique.
Actuellement, pour produire des fichiers PDF, LilyPond génère sa
sortie au format PostScript et utilise l'outil GhostScript pour convertir
le PostScript en PDF. Il y a également un deuxième mode de sortie
qui génère du SVG. Depuis déjà plus d'un an a été développé un
mode de sortie qui ne passe pas par le PostScript mais génère
directement du PDF ou du SVG, à travers une bibliothèque nommée
Cairo. L'avantage se voit surtout sur la sortie SVG, qui est
incomparablement plus rapide. De plus, elle intègre les polices
au fichier SVG, ce qui assure qu'il peut être lu correctement
dans tous les navigateurs sur tous les systèmes.

Pour compiler un fichier avec Cairo, il faut lancer LilyPond
avec une option :

lilypond -dbackend=cairo fichier.ly

Pour générer du SVG :

lilypond --svg -dbackend=cairo fichier.ly

L'option -dbackend=cairo est toujours en développement, quelques
fonctionnalités n'y sont pas encore présentes (comme l'option
-dembed-source-code).

Comme d'habitude, il y a d'autres nouveautés, toutes listées ici :

https://lilypond.org/doc/v2.23/Documentation/changes/index.html

Je signale que deux d'entre elles ont pour origine des discussions
sur cette liste : l'option \paper { bookpart-level-page-numbering = ##t }
pour redémarrer la numérotation des pages à chaque nouveau \bookpart
(voir 
https://lists.gnu.org/archive/html/lilypond-user-fr/2022-07/msg00031.html)
et la commande \staffHighlight, qui colorie une ou plusieurs portées
(voir 
https://lists.gnu.org/archive/html/lilypond-user-fr/2021-12/msg00037.html
et https://myrealbook.vintherine.org/un-peu-de-couleur.html).

Les téléchargements sont par ici :

https://lilypond.org/development

et la procédure d'installation est décrite ici :

https://lilypond.org/doc/v2.23/Documentation/learning/installing.html

À bientôt sur la liste,
Jean




reply via email to

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