Marschbuch-page-breaking

Begonnen von Arnold, Mittwoch, 18. Oktober 2017, 09:26

« vorheriges - nächstes »

Arnold

Hallo,

ich suche eine »Methode« für den bei Marschbüchern üblichen Seitenumbruch, man könnte es auch »sheet-by-sheet-breaking« nennen.
Eigentlich ist der einzige Unterschid zu ly:page-turn-breaking, daß jeder Seitenwechsel wie ein Umblättern behandelt wird. Anders ausgedrückt: So viele Scores wie möglich auf eine Seite, aber Seitenwechsel nur bei \allowPageTurn innerhalb des Stückes, denn diese Marschbücher sind machmal sogar mit Spiralen gebunden, und man klappt sie so weit um, daß immer nur eine Seite auf der Marschgabel sichtbar ist.

Leider ist ly:page-turn-breaking in C programmiert, so kann ich das nicht einfach als Vorlage kopieren und die Scheme-Funktion abändern. Vielleicht hat da jemand aber schon eine Lösung, oder kann viel schneller als ich von C nach SCHEME übersetzen.

Arnold

Arnold

Ich habe es »sheet-turn-breaking« getauft.

Nachdem ich sehr viel C-Code in »page-turn-page-breaking.cc« sah, von dem ich meine Zweifel hatte, ob das alles als SCHEME-Funktionen zur Verfügung stünde, habe ich in der LilyDev-Umgebung (2.19.80) einen Versuch gestartet.
»page-turn-page-breaking.hh« wurde nach »sheet-turn-page-breaking.hh« kopiert, und »Page_turn« ein »Sheet_turn« umbenannt.
Den Großteil von »page-turn-page-breaking.cc« habe ich in sich kopiert, auch in der Kopie »Page_turn« nach »Sheet_turn« unbemannt.
Ein Funktion in »page-turn-page-breaking.cc« wird noch gemeinsam (von »Page_turn« und von »Sheet_turn«) benutzt, und ich drückte mich so darum, wie eine weitere von make erkannt und CC-Datei mitübersetzt wird.
In den »Sheet_turn«-Funktionen habe ich auf Verdacht hin alle Auswahlkriterien mit »2« abgeändert (erst einmal das Original auskommenentiert, nicht gelöscht).
Ergänzt habe ich eine Warnungsmeldung, wenn etwas doch nicht auf eine Seite passen sollte.
Und letzen Endes wurde noch »page-breaking-scheme.cc« um den »sheet-turn-breaking«-Eintrag erweitert.

Jetzt kann ich die (noch wenigen Dateien), bei denen ich dieses »sheet-turn-breaking« benötige, in der VM-Ware übersetzen.
Den ganzen Rest, wo nicht benötigt, bearbeite ich weiterhin unter WIN7, bisher noch mit der 2.18.2.

Arnold

Arnold

Hallo,

ich bin erst kürzlich darauf gestoßen, daß es auch mit weniger Aufwand geht:

\layout {
  \context { \Score
    \override NonMusicalPaperColumn.page-break-permission = ##f
  }
}


Damit bleibt jeder »score« auf einer Seite.

In abgeänderter Form eingesetzt, kann man beim »page-turn-breaking« nachhelfen, daß am Schluß nur eine und nicht zwei Seiten belegt werden.

Arnold.