Seitennummer je bookpart neu einstellen: mit neueren Lilypond Versionen anders

Begonnen von Manuela, Freitag, 17. März 2023, 10:36

« vorheriges - nächstes »

Manuela

Ich vermute, dass die Antwort irgendwo im Archiv begraben liegt, das leider momentan nicht zugänglich ist.

Mit
first-page-number = #3 kann ich offensichtlich nur für die Gesamtausgabe die Seitenzahl einmal einstellen, in einem neuen bookpart jedoch nicht ändern.
Danke für eure Hilfe
viele Grüße
-- Manuela

Manuela

#1
Ich habe hier eine Lösung gefunden

Hier die Kurzversion:
#(define-markup-command (bookpart-page-number layout props) ()
   (let ((first-page-number (ly:output-def-lookup layout 'first-page-number))
         (page-number (chain-assoc-get 'page:page-number props 0)))
     (interpret-markup layout props (format "~a" (1+ (- page-number
                                                       first-page-number))))))

In die Paper-Anweisung muss man dann etwa folgendes einfügen
\paper {
  oddHeaderMarkup = \markup \center-column
  {
    \fill-line {
      \null
      \abs-fontsize #10 \number \bookpart-page-number
    }
  }
  evenHeaderMarkup = \markup \center-column
  {
    \fill-line {
      \abs-fontsize #10
      \number \bookpart-page-number
      \null
    }
  }
}
Danke für eure Hilfe
viele Grüße
-- Manuela

Pusteblumi

Hallo Manuela,

witzigerweise gab es dazu gerade gestern einen Beitrag in der französischen Mailingliste:
https://lists.gnu.org/archive/html/lilypond-user-fr/2023-03/msg00180.html

Seit Ly 2.23.12 geht's auch damit:
\paper {
  bookpart-level-page-numbering = ##t
}

Viele Grüße,
Klaus

Manuela

Danke für den Hinweis, Klaus. Leider hat mein Ubuntu Lilypond noch nicht upgedated, ich stehe bei 2.23.5
Danke für eure Hilfe
viele Grüße
-- Manuela

Manuela

Mit den neuen Versionen (ich habe ab 2.25.15 getestet) funktioniert die Prozedur bookpart-page-number gar nicht mehr.

Ich habe eine Weile gebraucht, bis ich herausgefunden habe, wieso mein Code mit den neueren Versionen plötzlich nicht mehr kompiliert.

Hier ein Beispiel für die Anwendung der neuen Eigenschaft bookpart-level-page-numbering

\version "2.25.18"
\language "deutsch"

%% diese Prozedur ist obsolet und liefert eine Fehlermeldung
% #(define-markup-command (bookpart-page-number layout props) ()
%    (let
%     ((first-page-number
%       (ly:output-def-lookup layout 'first-page-number))
%      (page-number (chain-assoc-get 'page:page-number props 0)))
%     (interpret-markup layout props
%                       (format "~a"
%                               (1+ (- page-number
%                                      first-page-number))))))

mus = \relative { c'4 c c c}

\paper {
  bookpart-level-page-numbering = ##t
  #(include-special-characters)
  oddHeaderMarkup = \markup {
    \fill-line {
      \null
      \unless \on-first-page-of-part \if \should-print-page-number
      \concat
      \vcenter {
        "—— "
        \number \fromproperty #'page:page-number-string
        " ——"
      }
      \null
    }
  }
  evenHeaderMarkup = #oddHeaderMarkup
}

\bookpart {
  \markup "1. Bookpart"
  \mus
  \pageBreak
  \mus
}

\bookpart {
  \markup "2. Bookpart"
  \mus
  \pageBreak
  \mus
}

Danke für eure Hilfe
viele Grüße
-- Manuela