Seitenzahl mit Gesamtseitenzahl

Begonnen von Stephan, Sonntag, 12. November 2023, 23:36

« vorheriges - nächstes »

Stephan

Hallo,

ich möchte auf meinen Seiten in der Fußzeile die Seitenzahl und die Gesamtseitenzahl ausgeben: z.B. 1/4 wenn das Dokument 4 Seiten lang ist.
Dazu habe ich leider nichts gefunden. Ich habe mir jetzt etwas gebastelt. Das funktioniert zwar, jedoch denke ich, dass dies auch eleganter geht. Nur wie? Außerdem möchte ich nicht immer am Schluss ein \label "verstecken".

Hier mein Lösungsversuch:

\version "2.24.2"

\paper {

  print-page-number = ##t
  print-first-page-number = ##t
   
  %Fußzeile
  oddFooterMarkup = \markup {
  \if \should-print-page-number
    \fill-line { \null
                 \concat {\fromproperty #'page:page-number-string " / "
                          \page-ref #'Ende "0" "?"}
                 \null  }
  }
  evenFooterMarkup = \oddFooterMarkup

} %\paper

{ R1*300  \label #'Ende }

Ich bin auch etwas verwundert, dass ich dazu nichts gefunden haben.

Danke und Grüße
Stephan

Elke

Hallo Stephan,
ich hab das gleiche Problem und komm nicht weiter. Wenn ich dein Schnipsel mit einem einfachen musikalischen Ausdruck (Noten und Text in der geschweiften Klammer) verwende, klappt es. Aber wenn ich z.B. einen Choirstaff (ohne die geschweifte Klammer, nur mit den eckigen) hab, funktioniert es nicht mehr. Wo genau plazierst du den \label #*Ende ?

Grüße
Elke                                             

Lilysetter

#2
Ich mache es sehr ähnlich wie Stephan.
Zusätzlich schreibe ich den Titel und das Datum dazu, damit man auch weiß, zu welchem Stück das Blatt gehört, und welche Version es ist.

Die beiden print-(first-)page-number(s) kannst Du weglassen, wenn Du unten das \if \should-print-page-number weglässt.
Du muss das Label nach der letzten Note setzen. Poste mal ein Minimal-Beispiel, das nicht funktioniert.
mytitle="My Title"
\header{title=\mytitle}
\paper{
  oddHeaderMarkup =\markup\if\should-print-page-number\fill-line{\null\line{\mytitle
    "   "#(strftime"%d.%m.%Y"(localtime(current-time)))
    "   Seite"\fromproperty #'page:page-number-string "von"\page-ref #'Ende "0" "?"}}
  evenHeaderMarkup=\oddHeaderMarkup
  oddFooterMarkup =\markup\fill-line{\null\line{
    \fromproperty #'page:page-number-string "/"\page-ref #'Ende "0" "?"}\null}
  evenFooterMarkup=\oddFooterMarkup
  } %\paper
{ R1*300  \label #'Ende }

Elke

Hallo,
hier mein Minimalbeispiel mit der ganzen Struktur.

Wenn ich nur
 \score {
 {
   <<
     { "die Noten" }
   \addlyrics
     { "den Text" }
   >>
    \label #'Ende
  }
verwende, klappt das Beispiel von Stephan.

[/\version "2.24.3"
\paper {

  #(set-paper-size "a4")
    indent = 0\mm
    left-margin = 20\mm   % scaled to paper-size
    right-margin-default = 10\mm  % scaled to paper-size
    last-bottom-spacing.basic-distance = #10
    print-page-number = ##t
    print-first-page-number = ##t
    oddHeaderMarkup = \markup \null
    evenHeaderMarkup = \markup \null
    oddFooterMarkup = \markup {
      \if \should-print-page-number
      \fill-line { \null
        \concat { \fromproperty #'page:page-number-string " / "
          \page-ref #'Ende "0" "?"}
                 }
    }
    evenFooterMarkup = \oddFooterMarkup

bookTitleMarkup = \markup {
  \override #'(baseline-skip . 3.5)
  \column {
    \fill-line { \fromproperty #'header:dedication }
    \override #'(baseline-skip . 3.5)
    \column {
      \fill-line {
        \huge \larger \larger \bold
        \fromproperty #'header:title
      }
      \fill-line {
        \null
        \fontsize #3 \fromproperty #'header:opus
      }
       \fill-line {
        \large \bold
        \fontsize #3 \fromproperty #'header:subtitle
      }
      \fill-line {
        \smaller \bold
        \fontsize #3 \fromproperty #'header:subsubtitle
      }
      \fill-line {
        \fromproperty #'header:poet
        { \large \bold \fromproperty #'header:instrument }
        \fromproperty #'header:composer
      }
      \fill-line {
        \fromproperty #'header:meter
        \fromproperty #'header:arranger
      }
    }
  }
}

scoreTitleMarkup = \markup { \column {
  \if \should-print-all-headers { \bookTitleMarkup \hspace #1 }
  \fill-line {
    \fromproperty #'header:piece
    \null
   }
}
}
}

global = {
  \key c \minor
  \numericTimeSignature
  \time 4/4
  \tempo "Moderately" 4 = 100
  \clef "treble"
  \dynamicUp
}

sopMusic = \relative {
        g'1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1
}
sopWords = \lyricmode {
    Hey}

altoMusic = \relative {
        g'1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1 g1
}
altoWords = \lyricmode {
    Hey}

\book {
  \header {
    subtitle = "Sound of Silence"
    %subsubtitle = "Subsubtitle"
    poet = "Art Garfunkel"
    composer = "Art Garfunkel"
    % meter = "meter"
    % arranger = "arranger"
    % copyright = "copyright goes at the bottom of the first page"
    opus = "300"
  }

  \paper {
    markup-system-spacing = #'((basic-distance . 10)
                             (padding . 0.5)
                             (stretchability . 30))
  }

  \score {
   
   \new ChoirStaff <<
     \new Staff = "women"
      \new Voice = "sopranos" \with { instrumentName = "S" } {<< \global \sopMusic >> }
      \new Lyrics = "sopranos"
     
    \new Staff = "men"
     \new Voice = "altos" \with { instrumentName = "A" } {<< \global \altoMusic >> }
     \new Lyrics = "altos"
   
    \context Lyrics = "sopranos" \lyricsto "sopranos" \sopWords
    \context Lyrics = "altos" \lyricsto "altos" \altoWords
    %%\context Lyrics = "tenors" \lyricsto "tenors" \tenorWords
    %\context Lyrics = "basses" \lyricsto "basses" \bassWords
  >>
   \label #'Ende   
  \layout { }
  \midi { }
  }
   
}]

Lilysetter

#4
die eckigen Klammer [/ und ] im von Dir geposteten Quelltext gehören nicht zum Lily-Quelltext.
Die Fehlermeldung lautet:
..../seitenzahl.ly:122:4: Fehler: Falscher Ausdruck in \score
   \label #'Ende

Ich schrieb:
> Du muss das Label nach der letzten Note setzen. Poste mal ein Minimal-Beispiel, das nicht funktioniert.
Du hast weder das eine noch das andere beachtet / getan.  Warum fragst Du dann?
So funktioniert es (Du solltest auch am Quelltext-Format arbeiten):\version "2.24.3"
\paper {
  #(set-paper-size "a4")
  indent = 0\mm
  left-margin = 20\mm   % scaled to paper-size
  right-margin-default = 10\mm  % scaled to paper-size
  last-bottom-spacing.basic-distance = #10
  print-page-number = ##t
  print-first-page-number = ##t
  oddHeaderMarkup = \markup \null
  evenHeaderMarkup = \markup \null
  oddFooterMarkup = \markup {
  \if \should-print-page-number
    \fill-line { \null
      \concat { \fromproperty #'page:page-number-string " / "
        \page-ref #'Ende "0" "?"}
      }
    }
  evenFooterMarkup = \oddFooterMarkup
  bookTitleMarkup = \markup {
    \override #'(baseline-skip . 3.5)
    \column {
      \fill-line { \fromproperty #'header:dedication }
      \override #'(baseline-skip . 3.5)
      \column {
        \fill-line {
          \huge \larger \larger \bold
          \fromproperty #'header:title
          }
        \fill-line {
          \null
          \fontsize #3 \fromproperty #'header:opus
          }
        \fill-line {
          \large \bold
          \fontsize #3 \fromproperty #'header:subtitle
          }
        \fill-line {
          \smaller \bold
          \fontsize #3 \fromproperty #'header:subsubtitle
          }
        \fill-line {
          \fromproperty #'header:poet
          { \large \bold \fromproperty #'header:instrument }
          \fromproperty #'header:composer
          }
        \fill-line {
          \fromproperty #'header:meter
          \fromproperty #'header:arranger
          }
        }
      }
    }
  scoreTitleMarkup = \markup { \column {
      \if \should-print-all-headers { \bookTitleMarkup \hspace #1 }
      \fill-line {
        \fromproperty #'header:piece
        \null
        }
      }
    }
  }
global = {
  \key c \minor
  \numericTimeSignature
  \time 4/4
  \tempo "Moderately" 4 = 100
  \clef "treble"
  \dynamicUp
  }
sopMusic  = \relative { \repeat unfold 131 g'1 \label #'Ende }
sopWords  = \lyricmode{ Hey }
altoMusic = \relative { \repeat unfold 131 g'1 }
altoWords = \lyricmode{ Hey }
\book {
  \header {
    subtitle = "Sound of Silence"
    %subsubtitle = "Subsubtitle"
    poet = "Art Garfunkel"
    composer = "Art Garfunkel"
    % meter = "meter"
    % arranger = "arranger"
    % copyright = "copyright goes at the bottom of the first page"
    opus = "Op.300"
  }
\paper {
  markup-system-spacing = #'((basic-distance . 10)
                             (padding . 0.5)
                             (stretchability . 30))
  }
\score {   
    \new ChoirStaff <<
      \new Staff = "women"
      \new Voice = "sopranos" \with { instrumentName = "S" } {<< \global \sopMusic >> }
      \new Lyrics = "sopranos"
      \new Staff = "men"
      \new Voice = "altos" \with { instrumentName = "A" } {<< \global \altoMusic >> }
      \new Lyrics = "altos"
      \context Lyrics = "sopranos" \lyricsto "sopranos" \sopWords
      \context Lyrics = "altos" \lyricsto "altos" \altoWords
      >>
    \layout { }
    \midi { }
    }
  }

Elke

Hallo Lilysetter,
danke für deine schnelle Antwort. Richtig, die eckigen Klammern sind auch nicht aus dem Quelltext, ich komm aber mit der Einfüge-Option hier nicht so recht klar. Die Fehlermeldung mit dem falschen Ausdruck bekomme ich auch. Bei meiner Google-Suche bin ich auf einen Beitrag gestoßen, daß \label #'Ende nicht in \score stehen dürfte. Deshalb weiß ich jetzt echt nichtmehr wohin mit dem Ausdruck.

Grüße
Elke

Lilysetter

Ich verstehe nicht, was es hier nicht zu verstehen gibt. Schau dir meine Beispiele an, auch das von mir korrigierte Stück von dir.
Das \label muss im Notentext, also innerhalb des \relative{ ... } nach der letzten Note (oder irgendwo anders auf der letzten Seite) stehen.

Elke

Hallo Lilysetter,
jetzt hab ich's verstanden und es funktioniert.
Vielen Dank
Grüße Elke