Autor Thema: Seitennumerierung über bookparts hinweg  (Gelesen 3208 mal)

juppes

  • Member
Seitennumerierung über bookparts hinweg
« am: Sonntag, 30. August 2015, 22:25 »
Wieder eine Frage an die alten Hasen. Die stellt sich jedem, der eine Sammlung unterschiedlich langer Stücke ohne Blätterpausen so organisieren muß, daß man irgendwo zwischen Stücken die Seite umwenden kann.

Ich habe das gemacht, indem ich Bookparts angelegt habe. Das Dumme ist nur, daß Lilypond die erste Seitenzahl des neuen Bookparts nicht anzeigt, obwohl korrekt weitergezählt wird. Da ich annehme, daß es sich hier um eine Standardeinstellung handelt, vermute ich, daß man das irgendwo ändern kann. Ich habe im Netz nichts dazu finden können, oder jedenfalls keine Lösung.

Die im neuen Bookpart "vergessene" Instrumentenangabe in der Kopfzeile kann man ja auch "nachrüsten", darum hoffe ich, daß man die fehlende Zahl auch zum Vorschein bringen kann.

Ich arbeite mit Lilypond 2.18.2

Danke für Eure Hilfe schon mal
« Letzte Änderung: Sonntag, 30. August 2015, 22:29 von juppes »

fugenkomponist

  • Member
Re: Seitennumerierung über bookparts hinweg
« Antwort #1 am: Sonntag, 30. August 2015, 23:05 »
Ich habe das gemacht, indem ich Bookparts angelegt habe. Das Dumme ist nur, daß Lilypond die erste Seitenzahl des neuen Bookparts nicht anzeigt, obwohl korrekt weitergezählt wird. Da ich annehme, daß es sich hier um eine Standardeinstellung handelt, vermute ich, daß man das irgendwo ändern kann. Ich habe im Netz nichts dazu finden können, oder jedenfalls keine Lösung.
Es fehlt hier ein Minimalbeispiel.
Zitat
Die im neuen Bookpart "vergessene" Instrumentenangabe in der Kopfzeile kann man ja auch "nachrüsten", darum hoffe ich, daß man die fehlende Zahl auch zum Vorschein bringen kann.
Wie geht das beim Instrument? Der Code dazu könnte Helfern helfen … ⇒ Es fehlt ein Minimalbeispiel.
Zitat
Ich arbeite mit Lilypond 2.18.2
Ich zwar mit 2.19.25, aber ich glaube nicht, dass sich da etwas geändert hat seit 2.18.2 am Standardverhalten (die Dokumentation erwähnt jedenfalls keine Änderungen in dieser Richtung). Und mit 2.19.25 kann ich dein Problem nicht reproduzieren. ⇒ Es fehlt ein Minimalbeispiel.\version "2.19.25"

\header {
  instrument = "Luftgitarre"
}

\bookpart {
  \markup "Teil 1 Seite 1"
  \pageBreak
  \markup "Teil 1 Seite 2"
  \pageBreak
  \markup "Teil 1 Seite 3"
}

\bookpart {
  \markup "Teil 2 Seite 1"
  \pageBreak
  \markup "Teil 2 Seite 2"
  \pageBreak
  \markup "Teil 2 Seite 3"
}

\bookpart {
  \markup "Teil 3 Seite 1"
  \pageBreak
  \markup "Teil 3 Seite 2"
  \pageBreak
  \markup "Teil 3 Seite 3"
}

harm6

  • Member
Re: Seitennumerierung über bookparts hinweg
« Antwort #2 am: Sonntag, 30. August 2015, 23:14 »
Zitat von: juppes
Das Dumme ist nur, daß Lilypond die erste Seitenzahl des neuen Bookparts nicht anzeigt, [...]
Doch, das ist der default, siehe:

\version "2.18.2"

\book {
  \bookpart {
    \header { title = "1" }
    \repeat unfold 2 { c'1 \pageBreak }
  }
  \bookpart {
    \header { title = "2" }
    \repeat unfold 2 { c'1 \pageBreak }
  }
  \bookpart {
    \header { title = "3" }
    \repeat unfold 2 { c'1 \pageBreak }
  }
}

Wie fugenkomponist schon sagte, der Code ist wichtig. Insbesondere \header sowie Deine Definition der page-footer/header.

Gruß,
  Harm

juppes

  • Member
Re: Seitennumerierung über bookparts hinweg
« Antwort #3 am: Montag, 31. August 2015, 00:03 »
Danke für die Antwort. Das mit dem Instrument ging ganz einfach: man baut nach den Noten im neuen Bookpart einen Header mit Instrumentenangabe ein, und schon ist es wieder da.

 Ich hänge mein Minimalbeispiel an. Habe versucht, die wesentlichen Strukturen meiner Datei nachzubauen. Es verhält sich jedoch nicht ganz wo wie bei mir (betrifft aber nur das "vergessene" Instrument). Bei den Seitenzahlen tut es genau das, was es bei mir auch tut: im neuen Bookpart fehlt die Seitenzahl, die aber vermutlich korrekt wäre, wenn man sie denn zu sehen bekäme, denn nachher wird richtig weitergezählt.


Bin gespannt, ob es eine Lösung gibt.

harm6

  • Member
Re: Seitennumerierung über bookparts hinweg
« Antwort #4 am: Montag, 31. August 2015, 00:27 »
Nun, LilyPond tut genau was Du Ihr gesagt hast:


Zitat
     
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
      }
      }

Nämlich: schreibe die Seitenzahl sowie das Instrument überall, außer auf der ersten Seite eines bookpart.

:D

Die Frage wäre also, wie willst Du es tatsächlich haben?


Gruß,
  Harm


juppes

  • Member
Re: Seitennumerierung über bookparts hinweg
« Antwort #5 am: Montag, 31. August 2015, 00:40 »
Ja, so sind die Programme eben: sie tun genau das, was man ihnen sagt, aber manchmal blickt man selber nicht mehr durch, und dann kommt Unerwartetes heraus.

Also: ich hätte in diesem Fall gerna, daß die Seitenzahlen auch auf der ersten Seite eines Bookpart angezeigt werden. Was muß ich Lilypond genau sagen? Brauche einen Dolmetscher offenbar ... ;)

Vermute: \on-the-fly #part-first-page
Einfach das "not" weglassen  :-\
« Letzte Änderung: Montag, 31. August 2015, 00:51 von juppes »

harm6

  • Member
Re: Seitennumerierung über bookparts hinweg
« Antwort #6 am: Montag, 31. August 2015, 01:09 »
Ich würde die Definitionen für `evenHeaderMarkup' und `oddHeaderMarkup' auskommentieren.
Dann gilt natürlich der default.
Schau mal, ob der Dir nicht bereits zusagt. Nach dem was Du geschrieben hast könnte ich mir das gut vorstellen.
Falls nicht schaun wir weiter.

Gruß,
  Harm
« Letzte Änderung: Montag, 31. August 2015, 01:10 von harm6 »

harm6

  • Member
Re: Seitennumerierung über bookparts hinweg
« Antwort #7 am: Montag, 31. August 2015, 01:17 »
Zitat von: harm6
Dann gilt natürlich der default.

Den default kannst Du in titling-init.ly nachlesen oder auch (in der scheme-Variante) anzeigen lassen indem Du folgendes in ein file kopierst:

\paper {
  \displayScheme \evenHeaderMarkup
  \displayScheme \oddHeaderMarkup
}

fugenkomponist

  • Member
Re: Seitennumerierung über bookparts hinweg
« Antwort #8 am: Montag, 31. August 2015, 08:21 »
Vermute: \on-the-fly #part-first-page
Falls du nicht den von harm erwähnten default haben willst, aber auf der allerersten Seite keine Seitenzahl, müsstest du diesen Teil des \paper-Blocks nach dem ersten \bookpart wiederholen. Und das \on-the-fly ganz weglassen (denn du brauchst ja dann keine Unterscheidung zwischen erster Seite und anderen mehr).

juppes

  • Member
Re: Seitennumerierung über bookparts hinweg
« Antwort #9 am: Montag, 31. August 2015, 10:12 »
Perfekt! Der Fall ist gelöst. Jetzt habe ich endlich verstanden, wie die Seitenzählerei im einzelnen funktioniert und kann sie mir nach Bedarf anpassen.

Ich werde mir diese ganzen Textdateien im Lilypond-Ordner mal so nach und nach durchlesen. Dann werden manche Dinge schon klarer, denn die Syntax ist auch schon ohne größere Scheme-Kenntnisse wenigstens oft verständlich und nachvollziehbar.

Ich nehme an, daß Ihr Eure Kenntnisse zum Teil auch daher habt, oder?

Nochmals vielen, vielen Dank! Jetzt kann ich das Projekt endlich fertigstellen und werde beim nächsten dieser Art nicht mehr an dieser Stelle hängenbleiben.

fugenkomponist

  • Member
Re: Seitennumerierung über bookparts hinweg
« Antwort #10 am: Montag, 31. August 2015, 11:34 »
Ich werde mir diese ganzen Textdateien im Lilypond-Ordner mal so nach und nach durchlesen. Dann werden manche Dinge schon klarer, denn die Syntax ist auch schon ohne größere Scheme-Kenntnisse wenigstens oft verständlich und nachvollziehbar.

Ich nehme an, daß Ihr Eure Kenntnisse zum Teil auch daher habt, oder?
Bei mir ist es eine Mischung aus sechs Jahren dieses Forum lesen, anderen Leuten helfen (dabei lernt man erstaunlich viel), Internals Reference lesen/darin nachschlagen, .ly- und .scm-Dateien im lilypond-Ordner lesen (nicht systematisch, eher nach Bedarf und manchmal weitergehendes Interesse), seit einiger Zeit auch selten mal C++-Sourcecode lesen (dito), rumprobieren, in der Scheme/Guile-Doku nachschlagen (z. B. hier) und ab und zu im issue tracker nachschlagen (Ist es ein Bug? Ist er schon bekannt? Gibts schon nen Workaround?).

Edit: Yay, levelup! (das ist mein 500. Beitrag)