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
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
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 }
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 { }
}
}]
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 { }
}
}
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
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.
Hallo Lilysetter,
jetzt hab ich's verstanden und es funktioniert.
Vielen Dank
Grüße Elke