Autor Thema: Probleme mit Titelblatt  (Gelesen 12715 mal)

enigma

  • Member
Re: Probleme mit Titelblatt
« Antwort #15 am: Montag, 19. Mai 2014, 22:32 »
Hallo,
bin neu hier im Forum und habe auch nicht sehr viel Erfahrung mit Lilypond. Im Augenblick erstelle ich eine Edition mit Stücken für Tasteninstrument und habe hier im Forum schon wirklich super Beiträge gefunden, die immer sehr verständlich waren und mir sehr geholfen haben!  ;)
Nun komme ich leider nicht mehr weiter... ich habe aus unterschiedlichen Gründen die Einzelstücke (insg. fast 300) in einzelne Dateien geschrieben. In einer separaten Datei habe ich häufig verwendete Variablen und Funktionen definiert (z.B. gewisse Sonderzeichen für Verzierungen, horizontale Verschiebungen, Stichnoten in Akkorden etc.) und diese per \include eingebunden. Funktioniert alles auch super und die Einzeldateien werden ohne Fehlermeldungen ausgegeben.
Jetzt möchte ich gerne alle Dateien zu einem "Fließtext" mit Seitenzahlen zusammenfügen für ein Gesamt-pdf. Dafür wollte ich die \book-Funktion verwenden und habe wie in der ausführlichen Beschreibung oben von RobUr (Danke - echt super!) eine Datei angelegt. Leider ist bei mir der Fall aber etwas komplizierter  ??? und mir ist nicht klar, wie ich meine Einzeldaten sowie die settings korrekt einbinde; dort, wo es im Beispiel als Option angegeben ist, hat es jedenfalls mit meinen Daten nicht funktioniert. Egal, an welcher Stelle ich es versucht habe, die settings werden nicht übernommen, sondern die Variablen tauchen beim Kompilieren immer als Fehler auf. Wenn ich die settings nicht einbinde - sie sind schon mit \include in den jeweiligen Einzeldateien - werden sie auch nicht übernommen. Habe auch schon die Dokus gewälzt und hier im Forum über Variablen gelesen, nur ich habs nicht geschafft, das für meinen Fall zu adaptieren  >:(
Abgesehen davon funktioniert leider auch die Einbindung der Einzeldateien nicht. Diese habe ich aufgebaut wie in der Dokumentation vorgeschlagen, d.h. nach dem Header (mit title, subtitle) etc. sowie \include "settings.ly" kommt der Notentext upper = \relative c' { Noten rechte Hand } und lower = \relative c { Noten linke Hand} und dann
\score { \new PianoStaff <<
  \new Staff = "upper" \upper
  \new Staff = "lower" \lower >> }
Damit kommt eine "fertige" Klavierpartitur raus, die ich gerne so wie sie ist in das Gesamtdokument übernehmen würde, direkt danach (also nicht erst auf einer neuen Seiten) die nächste dieser Art usw. Die ersten ca. 150 sollen in einen \bookpart und die zweiten aus der anderen Handschrift in einen zweiten \bookpart.
Irgendwie komme ich aber mit den Schachtelungen settings/Einzeldatei/Gesamtdatei nicht klar, weil ich habe ja schon in den Einzeldateien score und staff definiert. Wie muss ich das in der \book-Datei dann handhaben???
Habe ziemlich viel ausprobiert, bin aber nie zu dem Ergebnis gekommen, das ich wollte.
Deshalb meine Frage: wie kann ich meine bestehenden settings und meine Einzeldateien in eine \book-Umgebung korrekt einbetten? Bin grad etwas verzweifelt, dass ich kurz vor dem Ziel daran scheitere  :-[
Ach ja, habe die Einzeldaten mit Lilypond 2.16.2 für Windows angelegt.

Vielen Dank schonmal im voraus und schönen Abend,
enigma

harm6

  • Member
Re: Probleme mit Titelblatt
« Antwort #16 am: Dienstag, 20. Mai 2014, 01:41 »
Hallo enigma,

willkommen im forum.

Ich persönlich komme mit beschreibenden Aussagen nicht so gut klar, sondern will immer Code haben. ;)
Kannst Du ein Beispiel posten welches das Problem verdeutlicht?
Du wirst natürlich ein bißchen Arbeit mit so einem Beispiel haben, denn es sollte so kurz wie möglich sein ...

Gruß,
  Harm

enigma

  • Member
Re: Probleme mit Titelblatt
« Antwort #17 am: Dienstag, 20. Mai 2014, 17:48 »
Hallo Harm,
vielen Dank für Dein Interesse! Ich habe nun versucht, ein Beispiel zusammenzustellen, das möglichst kurz ist. Hoffentlich ist es einigermaßen verständlich...

Meine settings-Datei enthält mehrere Befehle wie z.B.
verschoben = {
  \once \override NoteColumn #'force-hshift = #0.5
}

Stichnote = #(define-music-function (parser loc arg) (ly:music?)
  (_i "Tag @var{arg} in small size.") #{
    \once \override NoteColumn #'force-hshift = #0.15
    \tweak #'font-size #-3 $arg
   
#})
wobei ich den letzten Befehl nicht bis ins Detail verstehe  :-[, sondern nach ähnlichen "nachgebaut" habe, aber er funktioniert.

----
Eine Einzeldatei sieht folgendermaßen aus:
\version "2.16.2"
\include "settings.ly"
\header {
   title = "Psalm 1"
   subtitle = "Qui au conseil"
   tagline = ""
}

global = {

}

upper = \relative c' {
  \clef treble
  \key c \major
  \time 2/2
 
  g'8. f16 e32 [ d e f] g e f g \bar "||"
 
   }
   
lower = \relative c {
  \clef bass
  \key c \major
  \time 2/2
 
<c g' c>2 \bar "||"

  }
 
  \score {
 \new PianoStaff  <<
     
    \new Staff = "upper" \upper
   \new Staff = "lower" \lower
   
 >>
   
 
}

\layout {indent= 0.0\cm}

----
Und nun das book-Gerüst wie oben angegeben:
\version "2.16.2"
#(set-global-staff-size 15)
%Papiergrösse noch definieren, Verlagsvorgaben
%Psalm1 = \include "Psalm001.ly"
    %funktioniert an dieser Stelle nur mit 1 Datei, die dann direkt eingefügt wird, geht nicht bei mehreren Dateien
%Psalm2 = \include "Psalm002.ly"



\book {
 \paper { }

\header {
  tagline = ##f
  breakbefore = ##t

}

%Quelle 1
\bookpart {
  \paper {  }
   \header {
   %Informationen sollen aus jew. Einzeldaten übernommen werden
  }
   
   \score {
     \context PianoStaff = "Klavier"
     %??? rechte und linke Hand als "upper" und "lower" in jew. Einzeldatei - dort oder erst hier zusammenfügen? Wie wird die Referenz gemacht?
     }
 \layout { indent = #0}
}

%Quelle 2
\bookpart {
  \paper {  }
   \header {
   %Informationen sollen aus jew. Einzeldaten übernommen werden
  }
   
   \score {
     \context PianoStaff = "Klavier"
     %??? rechte und linke Hand als "upper" und "lower" in jew. Einzeldatei - dort oder erst hier zusammenfügen? Wie wird die Referenz gemacht?
     }
 \layout { indent = #0}
}
 

   
}

Also, mir ist nicht klar, wo und wie ich meine bereits bestehenden Dateien inkludieren muss und wie ich die settings übernehmen kann, oder reicht das, wenn sie dann in den Einzeldateien aufgerufen werden? Die Angabe des Verzeichnisses stimmt jedenfalls, es steht alles in einem Ordner.
In den Einzeldateien habe ich ja bereits ein \score definiert, muss ich das jetzt nochmal machen oder wie kann ich das bereits Bestehende aufrufen?
Welche Angaben (header, layout etc.) muss ich aus den Einzeldateien löschen und in die Gesamtdatei einfügen?
Muss ich für jedes Stück einen neuen bookpart machen? Ich habe 3 Quellen, die jeweils einen Teil der Einzeldaten beinhaltet, das wäre für mich ein bookpart, aber was sind dann die Einzeldaten? Alternativ wäre es auch kein Problem, für jede Quelle ein book zu machen, das ich mit entsprechenden Seitenzahlen versehe.
Ganz naiv gesagt, hätte ich gerne, dass er mir die bestehenden Dateien in der von mir gewünschten Reihenfolge zu einem Fließtext zusammenhängt.  ;)

Uff, ganz schön viele Probleme...   ::) ich hoffe, ich habe es einigermaßen verständlich dargestellt, sonst bitte gerne nachfragen!  ;)

Ganz lieben Dank und viele Grüße,
enigma

P.S. leider hat das mit dem farbigen html-Text-Kopieren aus Frescobaldi nicht geklappt  >:(

RobUr

  • Member
Re: Probleme mit Titelblatt
« Antwort #18 am: Dienstag, 20. Mai 2014, 19:48 »
Hallo enigma,

ganz allgemein gesagt: du kannst nicht \paper {} in \paper {} includieren! Demzufolge auch nicht \header {} in \header etc.

Include-Dateien werden an ihrer Stelle eingebunden, als ob deren Inhalt dort ausnotiert wäre.

Variante 1:
Es wäre kein Problem, in einer externen Datei eine gültige Partitur zu notieren, um diese dann innerhalb eines bookpart aufzurufen. Bitte auf Log-Ausgabe achten, an welchen Stellen Lily meckert, z.B. \paper {} außerhalb von \score {} usw.

Variante 2 (meine in diesem Thread längst beschriebene):
Du lagerst Musik als Variablen aus und bindest sie außerhalb des book ein. Hierbei bitte Reihenfolge beachten: deine „settings“-Datei muss vor den include-Dateien, in denen die definierten Makros aufgerufen werden, eingebunden werden. Immer auf eindeutige Variablenbezeichner achten!

Zitat von: enigma
Muss ich für jedes Stück einen neuen bookpart machen? Ich habe 3 Quellen, die jeweils einen Teil der Einzeldaten beinhaltet, das wäre für mich ein bookpart, aber was sind dann die Einzeldaten? Alternativ wäre es auch kein Problem, für jede Quelle ein book zu machen, das ich mit entsprechenden Seitenzahlen versehe.
Ganz naiv gesagt, hätte ich gerne, dass er mir die bestehenden Dateien in der von mir gewünschten Reihenfolge zu einem Fließtext zusammenhängt.
In diesem Fall notierst du mehrere \score-Blöcke hintereineinander in einem bookpart. Es geht ja nicht darum, was du für einen Bookpart hältst, sondern wie Lily damit umgeht! Der Sinn eines Bookpart ist ja gerade der, einen neuen Abschnitt auf einer neuen Seite zu erzeugen. Ein Book hingegen erzeugt eine eigene Datei.

Zitat von: enigma
ich hoffe, ich habe es einigermaßen verständlich dargestellt, sonst bitte gerne nachfragen!
Nachfrage Bitte: Poste deine kompilierbaren (!) Minimalbeispieldateien!

Gruß, Robert

martinmagtenor

  • Member
Re:Probleme mit Titelblatt
« Antwort #19 am: Samstag, 28. Februar 2015, 10:01 »
Hallo Robert,

spät, aber dennoch ein herzliches Dankeschön für die sehr hilfreiche Zusammenstellung.

  % (Format, Ausrichtung und staff size sind schon auf oberster Ebene definiert.)[/i]
  \paper {
    left-margin = 2\cm
    line-width = 17\cm
    ragged-last-bottom = ##f
    first-page-number = #-1  % Titelblatt = -1, dann [leere] Rückseite = 0, dann erst Seite "1"
    % optional globales even[/odd]Header[/Footer]Markup
    % falls Fonts umdefiniert werden: hier! (myStaffSize = ... #(define fonts ...) etc.)
  }
Eine Anmerkung zu dem zitierten Ausschnitt: Wenn man so das Lilypond-eigene Inhaltsverzeichnis verwendet und im exportierten PDF-Dokument die Verlinkung des Inhaltsverzeichnisses mit dem Ziel nutzen möchte, muss man noch etwas Hand anlegen.

Die Zuweisung first-page-number = #-1 erzeugt einen Versatz um 2 Seiten (nach vorne).  Die Links zeigen auf die angegebene Seite des PDF-Dokuments und nicht auf die von Lilypond vergebene Seitenzahl.

In http://lists.gnu.org/archive/html/lilypond-user/2012-04/msg00499.html hat der fleißige Harm eine Lösung beschrieben, die mit meiner (noch) genutzten Version 2.16.2 klaglos funktioniert.

Grüße
  Martin