Autor Thema: Seitenzahlen anders anordnen  (Gelesen 6660 mal)

juppes

  • Member
Seitenzahlen anders anordnen
« am: Dienstag, 19. Juli 2011, 15:04 »
Es gibt in Lilypond eine Standardeinstellung, die ich nicht immer zweckmäßig finde: Seitenzahlen sind so angeordnet, daß sie immer mit einer Leerseite am Anfang des Stückes zu rechnen scheinen. Die Seite 1 ist also rechts, dann blättert man um, und es erscheinen die Seiten 2 und 3 usw.
In längeren Musikstücken braucht man aber in der Regel eher die Seiten 1 und 2 nebeneinander, damit man länger spielen kann, bevor gewendet werden muß. Kümmert man sich nicht um oben erwähnte Standard-Anordnung und ordnet seine Seiten in der eben beschriebenen Weise, wird man bestraft, indem die Seitenzahlen dann immer innen und nicht außen stehen (es gibt sicher Schlimmeres, aber aus Gewohnheit sucht man sie eben doch außen). Kann man dieses Verhalten von Lilypond nach seinen Wünschen beeinflussen? Mir ist es leider noch nicht gelungen, aber vielleicht habe ich auch nur nie an den richtigen Stellen nachgesehen...

Bin auf Eure Anregungen gespannt

RobUr

  • Member
Re: Seitenzahlen anders anordnen
« Antwort #1 am: Dienstag, 19. Juli 2011, 17:59 »
Hallo juppes,

die Seite 1 ist immer eine rechte Seite! Ungerade Seiten (odd pages) sind rechts, gerade Seiten (even pages) links. An dieser Konvention würde ich nichts ändern!

Folgende Alternativen sind aber denkbar:
• eine Leerseite/Titelseite einfügen, damit die Musik auf der ersten Doppelseite 2/3 beginnt
• die Seitenzahlen grundsätzlich zentrieren:
\paper {
  evenHeaderMarkup = \markup { \fill-line { \null \fromproperty #'page:page-number-string \null } }
  oddHeaderMarkup = \markup { \fill-line { \null \fromproperty #'page:page-number-string \null } }
}

Grüße, Robert

juppes

  • Member
Re: Seitenzahlen anders anordnen
« Antwort #2 am: Dienstag, 19. Juli 2011, 18:16 »
Wenn das eine Konvention ist, dann ist das ok - dann liegt es eben an mir und meiner Denkweise. Aber wie schalte ich eine Leerseite/Titelseite vor? Einfach gleich am Anfang vor der ersten Notenzeile einen "\pageBreak" setzen? Das fällt mir so spontan ein. Andererseits: eine Titelseite braucht man sowieso. Die habe ich immer noch extra in OpenOffice gestaltet und einfach dazugedruckt, indem ich die Seite im Papierfach meines Druckers herumgedreht habe. Nicht sehr elegant vielleicht, aber bei kleinen Stückzahlen durchaus ausreichend. Wie würdest Du es machen?

RobUr

  • Member
Re: Seitenzahlen anders anordnen
« Antwort #3 am: Mittwoch, 20. Juli 2011, 14:09 »
Zitat von: juppes
Aber wie schalte ich eine Leerseite/Titelseite vor? Einfach gleich am Anfang vor der ersten Notenzeile einen "\pageBreak" setzen?
Fast: es fehlt noch \markup { \null }, um eine Seitenausgabe zu erzwingen.

Siehe auch meinen Beitrag in Probleme mit Titelblatt.

Grüße, Robert

juppes

  • Member
Re: Seitenzahlen anders anordnen
« Antwort #4 am: Mittwoch, 20. Juli 2011, 15:38 »
danke! ich habe ein wenig in Deinem Artikel gelesen und kann nur bestätigen: am besten fährt man, wenn man die Logik hinter Lilypond begreift. Leider ist logisches Denken in dieser Art nicht meine große Stärke, aber Beschäfgtigung mit der Materie hilf natürlich irgendwann auf die Sprünge.

In meiner jetzitigen Situation (ich habe eine Streichquartettpartitur mit dazugehörigen Stimmen gesetzt und bin an den letzten Feinheiten für die Ausgabe - die halten manchmal länger auf als das Abschreiben der Musik). Da sind größere Umbauten der Struktur leider auch besonders schmerzhaft, denn es gibt ja schon eine Struktur, die eventuell gravierend umgebaut werden müßte. Ich habe noch nie etwas mit /book und /bookpart gemacht, sehe aber, daß ich mich für größere Projekte da einarbeiten muß.

Deine beiden Vorschläge habe ich nun ausprobiert,aber neben den Vorteilen haben sie auch Nachteile: bei den zentrierten Seitenzahlen verschwindet die Bezeichnung der Stimme (Violine I z.B.) und wird durch die Seitenzahl überschrieben. Kann man nicht das eine und das andere haben? Außerdem stört die "1" auf der ersten Seite, da sie über dem Titel steht und nicht wirklich vonnöten ist.

Bei der Lösung mit dem erzwungenen Seitenumbruch nimmt mir Lilypond erwartungsgemaß den Titel mit. Eigentlich wollte ich eine schöne Titelseite drucken, die ich separat mit einem anderen Programm erstelle.  Vielleicht kann ich sie noch in mein Dokument einbinden. Ich weiß aber nicht, wie das geht. Wahrscheinlich finde ich aber im Forum hier schon Antworten dazu. Mir war, als hätte ich das mal gesehen.

Oder gäbe es die Möglichkeit, den Titel mitsamt der ersten Seite auf der Seite 2 zu lassen und die erste Seite einfach ganz leer zu lassen?

herzlichen Gruß

RobUr

  • Member
Re: Seitenzahlen anders anordnen
« Antwort #5 am: Mittwoch, 20. Juli 2011, 18:36 »
Hallo juppes,

man kann ziemlich viel bis fast alles in Lily haben ;) Folgende Vorlage hilft dir vielleicht dabei. Sie erstellt eine Partitur und die Stimmen in separaten Dateien.

\version "2.12.3"

#(set-default-paper-size "henle")
#(set-global-staff-size 22.45)

#(define (not-part-first-page layout props arg)
   (if (= (chain-assoc-get 'page:page-number props -1)
          (ly:output-def-lookup layout 'first-page-number))
       empty-stencil
       (interpret-markup layout props arg)))

\include "deutsch.ly"

global = {
\key g \major
\mark "Allegro"
s1*200
\bar "|."
}

violineI = \relative c''' { \repeat unfold 200 { g4 r8 d g4 r8 d } }
violineII = \relative c''' { \repeat unfold 200 { g4 r8 d g4 r8 d } }
viola = \relative c'' { \repeat unfold 200 { g4 r8 d g4 r8 d } }
cello = \relative c' { \repeat unfold 200 { g4 r8 d g4 r8 d } }

\book { % Partitur
\header {
%title = "Streichquartett"
%composer = "Komponist"
tagline = ##f
}

\paper {
ragged-last-bottom = ##f
first-page-number = #-1

evenHeaderMarkup = \markup {
\on-the-fly #not-part-first-page
\fill-line {
\small \number { \fromproperty #'page:page-number-string }
\null
\large \bold \fromproperty #'header:instrument
\null
\null
}
}

oddHeaderMarkup = \markup {
\on-the-fly #not-part-first-page
\fill-line {
\null
\null
\large \bold \fromproperty #'header:instrument
\null
\small \number { \fromproperty #'page:page-number-string }
}
}
}

\bookpart { % Titelseite
\paper {
evenFooterMarkup = \markup { \null }
oddFooterMarkup = \markup { \null }
}

\markup \abs-fontsize #12 {
\fill-line {
\center-column {
\null \null \null \null \null \null \null
\abs-fontsize #29.86 \bold {
"Wolfgang Amadeus Mozart"
}
\null \null
\abs-fontsize #24.88 {
"(1756–1791)"
}
\null \null \null \null
\postscript #"-40 0 moveto 80 0 rlineto stroke" % "hline"
\null \null \null \null \null
\abs-fontsize #35.83 \bold {
"Divertimento G-Dur"
}
\null \null
\abs-fontsize #29.86 {
"„Eine kleine Nachtmusik“"
}
\null \null \null
\abs-fontsize #24.88 {
"KV 525"
}
\null \null \null \null \null
\postscript #"-40 0 moveto 80 0 rlineto stroke" % "hline"
\null \null \null \null \null \null \null \null
\abs-fontsize #24.88 {
"Partitur"
}
}
}
}
}

\bookpart { % Titelrückseite (leer)
\markup { \null }
}

\bookpart { % Partitur
\header {
instrument = "Partitur"
}

\paper { }

\score {
\new StaffGroup = "Partitur"
<<
\new Staff = "Violine I" \with {
instrumentName = "Violine I"
shortInstrumentName = "Vl.I"
}{ << \global \violineI >> }
\new Staff = "Violine II" \with {
instrumentName = "Violine II"
shortInstrumentName = "Vl.II"
}{ << \global \violineII >> }
\new Staff = "Viola" \with {
instrumentName = "Viola"
shortInstrumentName = "Vla"
}{ \clef "alto" << \global \viola >> }
\new Staff = "Violoncello I" \with {
instrumentName = "Violoncello"
shortInstrumentName = "Vc"
}{ \clef "bass" << \global \cello >> }
>>

\layout {
indent = #28
short-indent = #12
}
}
}

\bookpart { % letzte Seite (leer)
\markup { \null }
}
}

#(define output-suffix "Vl-I")
\book {
\header {
%title = "Streichquartett"
%composer = "Komponist"
tagline = ##f
}

\paper {
ragged-last-bottom = ##f
%first-page-number = #-1

evenHeaderMarkup = \markup {
\on-the-fly #not-part-first-page
\fill-line {
\small \number { \fromproperty #'page:page-number-string }
\null
\large \bold \fromproperty #'header:instrument
\null
\null
}
}

oddHeaderMarkup = \markup {
\on-the-fly #not-part-first-page
\fill-line {
\null
\null
\large \bold \fromproperty #'header:instrument
\null
\small \number { \fromproperty #'page:page-number-string }
}
}
}

\bookpart { % Titelseite
\paper {
evenFooterMarkup = \markup { \null }
oddFooterMarkup = \markup { \null }
}

\markup \abs-fontsize #12 {
\fill-line {
\center-column {
\null \null \null \null \null \null \null
\abs-fontsize #29.86 \bold {
"Wolfgang Amadeus Mozart"
}
\null \null
\abs-fontsize #24.88 {
"(1756–1791)"
}
\null \null \null \null
\postscript #"-40 0 moveto 80 0 rlineto stroke" % "hline"
\null \null \null \null \null
\abs-fontsize #35.83 \bold {
"Divertimento G-Dur"
}
\null \null
\abs-fontsize #29.86 {
"„Eine kleine Nachtmusik“"
}
\null \null \null
\abs-fontsize #24.88 {
"KV 525"
}
\null \null \null \null \null
\postscript #"-40 0 moveto 80 0 rlineto stroke" % "hline"
\null \null \null \null \null \null \null \null
\abs-fontsize #24.88 {
"Violine I"
}
}
}
}
}

\bookpart { % Violine I
\header {
instrument = "Violine I"
}

\paper { }

\score {
\new Staff = "Violine I" { << \global \violineI >> }

\layout { }
}
}
}

#(define output-suffix "Vl-II")
\book {
\header {
%title = "Streichquartett"
%composer = "Komponist"
tagline = ##f
}

\paper {
ragged-last-bottom = ##f
%first-page-number = #-1

evenHeaderMarkup = \markup {
\on-the-fly #not-part-first-page
\fill-line {
\small \number { \fromproperty #'page:page-number-string }
\null
\large \bold \fromproperty #'header:instrument
\null
\null
}
}

oddHeaderMarkup = \markup {
\on-the-fly #not-part-first-page
\fill-line {
\null
\null
\large \bold \fromproperty #'header:instrument
\null
\small \number { \fromproperty #'page:page-number-string }
}
}
}

\bookpart { % Titelseite
\paper {
evenFooterMarkup = \markup { \null }
oddFooterMarkup = \markup { \null }
}

\markup \abs-fontsize #12 {
\fill-line {
\center-column {
\null \null \null \null \null \null \null
\abs-fontsize #29.86 \bold {
"Wolfgang Amadeus Mozart"
}
\null \null
\abs-fontsize #24.88 {
"(1756–1791)"
}
\null \null \null \null
\postscript #"-40 0 moveto 80 0 rlineto stroke" % "hline"
\null \null \null \null \null
\abs-fontsize #35.83 \bold {
"Divertimento G-Dur"
}
\null \null
\abs-fontsize #29.86 {
"„Eine kleine Nachtmusik“"
}
\null \null \null
\abs-fontsize #24.88 {
"KV 525"
}
\null \null \null \null \null
\postscript #"-40 0 moveto 80 0 rlineto stroke" % "hline"
\null \null \null \null \null \null \null \null
\abs-fontsize #24.88 {
"Violine II"
}
}
}
}
}

\bookpart { % Violine II
\header {
instrument = "Violine II"
}

\paper { }

\score {
\new Staff = "Violine II" { << \global \violineII >> }

\layout { }
}
}
}

#(define output-suffix "Vla")
\book {
\header {
%title = "Streichquartett"
%composer = "Komponist"
tagline = ##f
}

\paper {
ragged-last-bottom = ##f
%first-page-number = #-1

evenHeaderMarkup = \markup {
\on-the-fly #not-part-first-page
\fill-line {
\small \number { \fromproperty #'page:page-number-string }
\null
\large \bold \fromproperty #'header:instrument
\null
\null
}
}

oddHeaderMarkup = \markup {
\on-the-fly #not-part-first-page
\fill-line {
\null
\null
\large \bold \fromproperty #'header:instrument
\null
\small \number { \fromproperty #'page:page-number-string }
}
}
}

\bookpart { % Titelseite
\paper {
evenFooterMarkup = \markup { \null }
oddFooterMarkup = \markup { \null }
}

\markup \abs-fontsize #12 {
\fill-line {
\center-column {
\null \null \null \null \null \null \null
\abs-fontsize #29.86 \bold {
"Wolfgang Amadeus Mozart"
}
\null \null
\abs-fontsize #24.88 {
"(1756–1791)"
}
\null \null \null \null
\postscript #"-40 0 moveto 80 0 rlineto stroke" % "hline"
\null \null \null \null \null
\abs-fontsize #35.83 \bold {
"Divertimento G-Dur"
}
\null \null
\abs-fontsize #29.86 {
"„Eine kleine Nachtmusik“"
}
\null \null \null
\abs-fontsize #24.88 {
"KV 525"
}
\null \null \null \null \null
\postscript #"-40 0 moveto 80 0 rlineto stroke" % "hline"
\null \null \null \null \null \null \null \null
\abs-fontsize #24.88 {
"Viola"
}
}
}
}
}

\bookpart { % Viola
\header {
instrument = "Viola"
}

\paper { }

\score {
\new Staff = "Viola" { \clef "alto" << \global \viola >> }

\layout { }
}
}
}

#(define output-suffix "Vc")
\book {
\header {
%title = "Streichquartett"
%composer = "Komponist"
tagline = ##f
}

\paper {
ragged-last-bottom = ##f
%first-page-number = #-1

evenHeaderMarkup = \markup {
\on-the-fly #not-part-first-page
\fill-line {
\small \number { \fromproperty #'page:page-number-string }
\null
\large \bold \fromproperty #'header:instrument
\null
\null
}
}

oddHeaderMarkup = \markup {
\on-the-fly #not-part-first-page
\fill-line {
\null
\null
\large \bold \fromproperty #'header:instrument
\null
\small \number { \fromproperty #'page:page-number-string }
}
}
}

\bookpart { % Titelseite
\paper {
evenFooterMarkup = \markup { \null }
oddFooterMarkup = \markup { \null }
}

\markup \abs-fontsize #12 {
\fill-line {
\center-column {
\null \null \null \null \null \null \null
\abs-fontsize #29.86 \bold {
"Wolfgang Amadeus Mozart"
}
\null \null
\abs-fontsize #24.88 {
"(1756–1791)"
}
\null \null \null \null
\postscript #"-40 0 moveto 80 0 rlineto stroke" % "hline"
\null \null \null \null \null
\abs-fontsize #35.83 \bold {
"Divertimento G-Dur"
}
\null \null
\abs-fontsize #29.86 {
"„Eine kleine Nachtmusik“"
}
\null \null \null
\abs-fontsize #24.88 {
"KV 525"
}
\null \null \null \null \null
\postscript #"-40 0 moveto 80 0 rlineto stroke" % "hline"
\null \null \null \null \null \null \null \null
\abs-fontsize #24.88 {
"Violoncello"
}
}
}
}
}

\bookpart { % Violoncello
\header {
instrument = "Violoncello"
}

\paper { }

\score {
\new Staff = "Violoncello" { \clef "bass" << \global \cello >> }

\layout { }
}
}
}

Jetzt kannst du nach Herzenslust experimentieren :)

Grüße, Robert

juppes

  • Member
Re: Seitenzahlen anders anordnen
« Antwort #6 am: Mittwoch, 20. Juli 2011, 21:22 »
Mein lieber Mann, ich bin beeindruckt! Habe noch viel zu lernen! Leider kam am Ende der Kompilierung die Meldung: Lilypond wurde mit dem Return-Code 1 beendet. Das Dokument wurde mir aber als PDF angezeigt. Vieleicht war das wegen meiner Lilypond-Version 2.12.2?
Meine eigene Vorlage ist simpler gestrickt - Ausgangspunkt war ein Template aus der Lilypond-Dokumentation, die ich ausgebaut habe. Mir ist beim ersten Durchlesen Deiner Vorlage noch nicht klar, wie ich da ein mehrsätziges Stück drin unterbringe, aber das wußte ich bei meiner Vorlage zunächst auch nicht.
Du scheinst jedenfalls schon sehr lange mit Lilypond zu arbeiten. denn dieses Programm ist ja ein Universalwerkzeug, aber das bewirkt auch, daß man viel Zeit braucht, um sich in alle möglichen Aspekte einzuarbeiten. Ich habe bislang sehr verschiedenartige Musik damit gesetzt, und jedesmal gab es wieder jede Menge Dinge, die ich noch nicht kannte. Es gibt Musik, die man mal eben schnell hinschreiben kann und welche, die sehr tüftelig ist, vor allem, wenn man sich nicht mit allen Voreinstellungen zufriedengibt.
Bei meinem nächsten Projekt werde ich jedenfalls Deine Vorlage mal verwenden und sehen, was passiert.

Aber noch mal zurück zu meiner Frage: wenn ich die zentrierten Seitenzahlen verwende, wie verhindere ich das "Überschreiben" der Instrumentenbezeichnung? Und wie verhindere ich, daß die Numerierung der Seite 1 erfolgt?

RobUr

  • Member
Re: Seitenzahlen anders anordnen
« Antwort #7 am: Mittwoch, 20. Juli 2011, 22:55 »
Mein lieber juppes ;)

Zitat von: juppes
wenn ich die zentrierten Seitenzahlen verwende, wie verhindere ich das "Überschreiben" der Instrumentenbezeichnung?
(a) Indem man Instrumentenbezeichnung und Seitenzahl in eine Spalte setzt. Das wäre dann z.B.
evenHeaderMarkup = \markup {
\on-the-fly #not-part-first-page
\fill-line {
\null
\center-column {
\small \number { \fromproperty #'page:page-number-string }
\large \bold \fromproperty #'header:instrument
}
\null
}
}

(b) Indem man die Möglichkeit, Seitenzahlen am unteren Rand zu platzieren, in Erwägung zieht.

Zitat von: juppes
Mir ist beim ersten Durchlesen Deiner Vorlage noch nicht klar, wie ich da ein mehrsätziges Stück drin unterbringe, aber das wußte ich bei meiner Vorlage zunächst auch nicht.
Soll was genau heißen? Baue beliebig viele \bookparts (\scores sind auch möglich) hintereinander, und schon hast du dein mehrsätziges Werk.

(c) fällt mir noch ein: Man kann ja fast alles fast überall hinbauen ;) Zum Verständnis muss man aber wissen, dass Lily vertikal anordnet. Klingt zunächst nicht ganz einfach, verhält sich aber wie eine Tabelle in HTML: Was zuerst kommt, steht auch oben. Deshalb muss man für eine Kopf-/Fußzeile zunächst deren interne Anordnung definieren. Dies passiert durch horizontale Befehle wie z.B. \fill-line, left/center/right-column & Co.

Hilfreich ist auch zu wissen, dass Lily bei fehlender evenHeader/Footer-Definition auf oddHeader/Footer zurückgreift.

Grüße, Robert

juppes

  • Member
Re: Seitenzahlen anders anordnen
« Antwort #8 am: Freitag, 29. Juli 2011, 18:41 »
Lieber Robert,

ich antworte, weil ich erst heute wieder dazu komme. Habe so lange an den Feinheiten meiner Partitur gebastelt. Toll, daß Du so viele Layout-Varianten draufhast.
Wenn ich Deinen ersten Vorschlag in den Paper-Block setze, bekomme ich leider eine Fehlermeldung. Lilypond stört sich am Ausdruck "#not-part-first-page".  Stimmt mit dem Code etwas nicht?
Ich habe noch eine andere Variante eruiert, die so geht:

print-page-number = ##t
  print-first-page-number = ##t
  oddHeaderMarkup = \markup \fill-line { " " }
  evenHeaderMarkup = \markup \fill-line { " " }
  oddFooterMarkup = \markup {
    \fill-line {
      \bold \fontsize #3
      \on-the-fly #print-page-number-check-first
      \fromproperty #'page:page-number-string
    }
  }
  evenFooterMarkup = \markup {
    \fill-line {
      \bold \fontsize #3
      \on-the-fly #print-page-number-check-first
      \fromproperty #'page:page-number-string
    }
  }

Das Ergebnis sind unten auf der Seite zentrierte Seitennummern. Leider bringen sie mir wieder die Instrumentenbezeichnung in der Kopfzeile zum Verschwinden. Trage ich in den leeren Markups eine Instrumentenbezeichnung ein, habe ich sie auf der ersten Seite dann doppelt, es sei denn, ich trage im Header bei "instrument" nichts ein. Das wäre ein tragfähiger Kompromiß;-)
Ich bin sicher, daß Du Rat weißt

RobUr

  • Member
Re: Seitenzahlen anders anordnen
« Antwort #9 am: Montag, 1. August 2011, 19:54 »
Hallo juppes,

Zitat von: juppes
Lilypond stört sich am Ausdruck "#not-part-first-page".  Stimmt mit dem Code etwas nicht?
Zu recht, denn der Code fehlt bestimmt. #not-part-first-page ist in Lily nicht eingebaut, sondern muss – wie in einer meiner vorherigen Antworten – extra definiert werden:
#(define (not-part-first-page layout props arg)
   (if (= (chain-assoc-get 'page:page-number props -1)
          (ly:output-def-lookup layout 'first-page-number))
       empty-stencil
       (interpret-markup layout props arg)))
Diese Funktion ermittelt also, ob es sich nicht um die erste Seite eines \bookpart handelt (kurz: alle übrigen Seiten eines \bookpart) und wendet daraufhin definiertes Markup an.

Es gibt eine ganze Reihe undokumentierter Funktionen (zumindest in 2.12.3), für die entsprechende Pendants definiert werden können. Ein typisches Beispiel ist die Abfrage, ob Lily auf der ersten Seite ist: \on-the-fly #first-page ist eingebaut, in der NR aber nicht dokumentiert. Ebenso funktioniert das Ermitteln, ob es sich nicht um die erste Seite handelt: \on-the-fly #not-first-page sucht man vergeblich in den Docs. Was fehlt jetzt noch? Richtig: \on-the-fly #last-page. Ebenfalls implementiert, trotzdem undokumentiert.

Wenn man nun ein wenig in der verantwortlichen Datei schmökert (ly/titling-init.ly) oder sich auf eine (Foren-)Suche begibt, stellt man mehr oder weniger flugs fest, was genau Lily eigentlich noch unter der Haube hat – oder was nicht ;) Es gab aber bereits viele schlaue Leute vor mir, die sich selbiges fragten und die fehlenden Funktionen in diversen Foren (meist auf der englischen Liste natürlich) ergänzten. Dazu zählt eben auch das fehlende not-part-first-page (das streng genommen part-not-first-page heißen müsste, aber das kannst du ja umbenennen), welches sich aus den Definitionen für part-first-page und part-last-page ableiten ließ. Ich habe das alles seit Erscheinen von 2.12 für mich zusammengetragen und kann nun Footer und Header gezielt gestalten.

Zitat von: juppes
Ich habe noch eine andere Variante eruiert […] Das Ergebnis sind unten auf der Seite zentrierte Seitennummern.
Das ist das Snippet aus der NR, oder? Es definiert ja gerade zentrierte Seitenzahlen im Footer:

  oddFooterMarkup = \markup {
    \fill-line {
      \bold \fontsize #3
      \on-the-fly #print-page-number-check-first
      \fromproperty #'page:page-number-string
    }
  }
  evenFooterMarkup = \markup {
    \fill-line {
      \bold \fontsize #3
      \on-the-fly #print-page-number-check-first
      \fromproperty #'page:page-number-string
    }
  }


#print-page-number-check-first überprüft vor der Ausgabe („on-the-fly“), ob auf der jeweiligen Seite überhaupt eine Seitenzahl gedruckt werden darf: print-page-number = ##t – ja, generell; print-first-page-number = ##t – ja, auch auf der ersten Seite. Ich bin von dieser Lösung bewusst abgewichen, da diese Abfrage eben nur für Seitenzahlen gilt (und ich nicht weiß, ob es ähnliche Abfragen für andere \header-Elemente, wie z.B. print-instrument, gibt). Die möglichen Abfragen nach „erster (Bookpart-)Seite“, „letzter (Bookpart)-Seite“ und „nicht-erster (Bookpart)-Seite“ (also aller anderen Seiten) erlauben eine weitaus mächtigere Kontrolle!

Zitat von: juppes
Leider bringen sie mir wieder die Instrumentenbezeichnung in der Kopfzeile zum Verschwinden.
Tja, das ist die Kehrseite der Medaille und Schlüssel zu allen weiteren Überlegungen: damit die Seitenzahlen nicht doppelt ausgegeben werden (per default in der Kopfzeile und nun zusätzlich in der Fußzeile), muss die Kopfzeile (in der die Seitenzahlen sonst erscheinen würden), mit leerem Markup überschrieben werden:
  oddHeaderMarkup = \markup \fill-line { " " }
  evenHeaderMarkup = \markup \fill-line { " " }


Zitat von: juppes
Trage ich in den leeren Markups eine Instrumentenbezeichnung ein, habe ich sie auf der ersten Seite dann doppelt, es sei denn, ich trage im Header bei "instrument" nichts ein.
Richtig, denn aus der Beschreibung für die instrument-Headervariable
Zitat von: NR 3.2.1 Creating titles
Name of the instrument, centered below the subsubtitle. Also centered at the top of pages (other than the first page)
ergibt sich, dass auf der ersten Seite die Headervariablen wie angegeben ausgegeben werden, auf den anderen Seiten außer der ersten („other than the first page“) aber anders. Damit eine Ausgabe aber überhaupt erfolgt, muss sie durch irgendeine Angabe ausgelöst werden; in deinem Beispiel die Definition eines Instruments. Doppelt ist die Instrumentenbezeichnung auf der ersten Seite allein deswegen, weil eine zusätzliche Kopfzeileninformation definiert wurde, also instrument + oddHeaderMarkup! Auf den Folgeseiten wird die Kopfzeile dann wie gesagt mit leerem Markup überschrieben.

Für alle, die es noch nicht wussten bzw. als Gedankenstütze für Vergessliche: Falls evenHeader|FooterMarkup nicht definiert ist, wird die Definition aus oddHeader|FooterMarkup angewandt. Wenn zwischen geraden und ungeraden Seiten also nicht unterschieden werden braucht, genügt die einmalige Definition für oddHeader|FooterMarkup

Zu deinem Problem nun kurz und knapp: Wenn du die book-bookpart-Konstruktion nicht verwendest, streiche einfach den part-Teil aus den Abfragen. Genau genommen behandelt Lily einen alleinigen \score-Block wie ein \book, das nur aus einem \bookpart besteht, ohne extra not-part-first-page definieren zu müssen (siehe ly/titling-init.ly). Ich wollte das nur der Vollständigkeit halber erwähnen …

Am elegantesten, weil üblich und gewohnt und bewährt, ist/bleibt für mich folgende Gestaltung:
• erste Seite (nicht Titelseite!): alle Angaben zu Werk, Komponist, Texter, Widmung etc. ohne Seitenzahl; evtl. Editions-/Verlagsnummer zentriert in der Fußzeile
• alle weiteren Seiten:
(1) Kopfzeile: Seitenzahl abwechselnd links/rechts (ungerade [odd] immer rechts; gerade [even] immer links; allgemein: außen); wenn zusätzlich Instrument/Stimme: zentriert; falls zusätzlich Komponist → s. Fußzeile; falls zusätzlich Werk → s. Fußzeile
(2) Fußzeile: allgemein leer (Mindestabstand beachten, damit Systeme nicht optisch „unten aus der Seite fallen“; quasi Passepartout); falls durchgängig Ed.-Nummer/Verlag: zentriert; falls zusätzlich Komponist: links auf geraden Seiten als eindeutiger (Kurz)Name (z.B. Mendelssohn oder C. P. E. Bach); falls zusätzlich Werk: rechts auf ungeraden Seiten in Kurzform (z.B. Psalm 43)

Alle Verlage haben ihre eigenen Editionsrichtlinien, bei denen man sich immer was abgucken kann! Und das allerschönste ist immer noch: Lily kann das alles mitmachen :) Ich erzähle immer wieder gern – und heute schreibe ich es auch einmal –, wie ich vor ein paar Jahren (es war mit der Entwicklerversion 2.11.x kurz vor 2.12) zum „Kennenlernen“ einen kurzen dreistimmigen Chorsatz abtippte und Lilys Ergebnis beängstigend dem Druck glich, den ich da eben als Fingerübung eingegeben hatte – spooky :o Und sofort war ich „angefixt“ und stürzte mich in alle Untiefen der Userschnittstellen, um meine Partituren auch in allen anderen Punkten gestalterisch den Ausgaben der Verlagsplatzhirsche anzupassen – der helle Wahnsinn und andauernde Überraschung, was noch alles „drin“ war und immer noch ist. Selbst heute, im dritten Jahr aktivsten „Lilypondens“, schnorchel ich zwar weit unter der Oberfläche, aber jeder neue Tauchgang ist ein Vorstoß in unerforschte Tiefen des Tümpels. Ich brauche kein teures und kein preiswertes Notenschreibprogramm, ich brauche nur ein einziges, dazu noch kostenloses Notensatzprogramm: Lily – I love you!

Forever yours,
Robert

juppes

  • Member
Re: Seitenzahlen anders anordnen
« Antwort #10 am: Montag, 8. August 2011, 16:51 »
hallo Robert,

ich schulde Dir noch eine Antwort auf Deine ausführlichen Anmerkungen, die wie immer hilfreich sind. Ich hatte noch keine Zeit, wieder weiter herumzuprobieren. Das Leben hatte zwischendurch mal andere, unausweichliche Anforderungen  ;)

Und mein Notenschreibprojekt ist inzwischen auch abgeschlossen. Aber das nächste kommt bestimmt, und ich weiß auch schon, was es ist. Und da werden dann die von mir noch nicht ganz zu Ende durchgearbeiteten Dinge wieder aufs Tapet kommen. Jedes Stück stellt aber auch wieder andere Aufgaben; Notenschrift ist doch ein sehr komplexes Ding, vor allem, wenn man sich nicht sofort mit dem zufrieden gibt, was einem ein Notensatzprogramm so anbietet. Es kann einfach nicht perfekt sein, weil eben die Stücke so wahnsinnig unterschiedlich sein können. Von dem, was Lilypond kann, braucht man meist nur einen Bruchteil, weil es doch ein echtes "Allzweckwerkzeug" ist.

Sehr interessant finde ich, wie Du zu Deinen ganzen Kenntnissen gekommen bist. Du hast Dir einfach angeschaut, was die diversen Bestandteile von Lilypond so alles an Informationen enthalten. Der Code ist ja nicht sehr rätselhaft, wenn man ihn anschaut (habe das ja neulich bei einer Datei gemacht, als ich wissen wollte, ob man auch eigene Papierformate festlegen kann). Ich sollte das wohl auch mal tun, um das Räderwerk besser zu verstehen. Ich würde erwarten, daß ich dann auch von selber auf manchen Dreh kommen könnte.

Meine eigene Notenschreiberei ist ja auch keine alltägliche Beschäftigung, sondern meist in irgendeiner Form projektbezogen. Ich brauche etwas Bestimmtes, das es so nicht gibt. Oder ich schreibe "schnell" mal eine Stimme aus einer computergenerierten kommerziellen Ausgabe ab, weil sie einfach nicht praxistauglich ist. Ich bin immer wieder überrascht, um wieviel besser die Ergebnisse mit Lilypond sind, auch wenn man gar nicht viel "herumschraubt". Es ist einfach ein tolles Programm, das man nicht genug empfehlen kann. Ich würde sogar Geld dafür bezahlen...

Andererseits bin ich sehr dankbar, daß Du und alle Lilypond-Meister hier im Forum so manche Stunde des Herumprobierens erspart haben. Es ist doch immer gut, wenn Leute, die gewisse Wege schon gemacht haben, die Neulinge und andere Halbgebildete wie mich auf die eine oder andere Fähre ansetzt...

Nochmal herzlichen Dank für die Hilfe und bis demnächst - ich melde mich wieder, wenn es haken sollte

kilgore

  • Member
Re: Seitenzahlen anders anordnen
« Antwort #11 am: Dienstag, 9. August 2011, 23:18 »
Rob,
Das ist das schönste Post das ich jemals in diesem Forum gelesen habe. 

I love Lily too!!

Gruß
kil