Autor Thema: Lilypond - LaTex Layout  (Gelesen 3322 mal)

pdqbach

  • Member
Lilypond - LaTex Layout
« am: Montag, 8. Juni 2015, 17:00 »
Liebes Forum,

nun bin ich einen großen Schritt weiter und erzeuge erste Latex-Dateien mit Lilypond-Bestandteilen, waoh!!

Nun versuche ich zu verstehen, wie man das Layout mit diesen beiden Systemen gemeinsam steuern kann.
1. Wenn ich in der Datei part_2_3.ly den Zeilenabstand ändere
\paper { indent = #0 
          system-system-spacing #'basic-distance = #45    % Abstand zwischen Notenzeilen
}
wirkt sich das in der (nur zu Testzwecken erzeugten part_2_3.pdf) aus, aber im Ergebnis (test.pdf) tut es das überhaupt nicht.

Welche Steuerelemente aus Lilypond kann ich nutzen, welche nicht?

2. Auch
\paper { indent = #0 
          left-margin = #0
}
hat nicht den Erfolg, den ich mir wünsche, das Notenbeispiel fängt nicht unter der Textzeile, sondern eingerückt an.

3. Wenn ich es richtig beobachte, ist noch nicht einmal der Zeilenumbruch der .ly-Datein unbedingt sicher vor einer Veränderung durch LaTex. Muss ich damit leben?

Freue mich über Hilfe und grüße herzlich,

Pepe

iugin

  • Member
Re: Lilypond - LaTex Layout
« Antwort #1 am: Montag, 8. Juni 2015, 19:52 »
Hallo Pepe

ich fürchte, du musst damit leben.
Im Handbuch steht nämlich
Zitat
Das Programm lilypond-book extrahiert die Musikfragmente aus dem Dokument, formatiert sie automatisiert in eine Grafik und fügt die resultierenden Notenbeispiele dann wieder in das Dokument ein.
Ich habe sehr viel mit Lilypond und Latex gemacht, und wenn ich es richtig in Erinnerung habe, habe von Lilypond einfach Bilder erzeugt, und sie dann im Dokument importiert. Ich bin aber nicht ganz sicher, muss wieder schauen. Es wird ein bisschen Zeit brauchen :-)

Lieber Gruss

Eugenio

pdqbach

  • Member
Re: Lilypond - LaTex Layout
« Antwort #2 am: Dienstag, 9. Juni 2015, 10:09 »
Hi Eugenio,

danke für Deine Antwort.

Aber es wird z.B. die Größenangabe berücksichtigt:
#(set-global-staff-size 20)

Dann sollte es doch möglich sein, andere Parameter an LaTex zu übergeben?!

HG

Pepe

mgd

  • Member
Re: Lilypond - LaTex Layout
« Antwort #3 am: Dienstag, 9. Juni 2015, 10:44 »
Hallo Pepe,

Zitat
Aber es wird z.B. die Größenangabe berücksichtigt:
#(set-global-staff-size 20)

Das wird in dem Sinne berücksichtigt, dass die von Lilypond erzeugten Bilder diese Größenangabe beachten,...

Zitat
Dann sollte es doch möglich sein, andere Parameter an LaTex zu übergeben?!

...jedoch nicht, indem ein entsprechender Parameter an TeX weiter geleitet würde und dort ausgewertet wird.

Wenn ich dein Beispiel aufrufe, dann wird für jede includierte Datei ein Unterverzeichnis angelegt. Dort kann man sehen, wie die Verarbeitung erfolgt. Jede einzelne Notenzeile wird in ein Bild umgewandelt, dass dann zu einem Gesamtbild zusammengesetzt wird. das so erzeugte Gesamtbild wird schließlich in dein Toplevel Dokument eingefügt.

Alle (?) als Zwischenschritte erzeugten *.tex, *.texi, *.ly, *.eps und *.pdf finden sich in den Unterverzeichnissen bzw. ganz oben in der Hierarchie. Da kannst du dir auch anschauen, was lilypond-book aus deiner Eingabedatei macht.

Ein Blick in den Quelltext von lilypond-book.py (das ist eine Textdatei) zeigt, es gibt offenbar eine ganze Reihe von möglichen Aufrufoptionen, die einlilypond-book --help nicht mit anzeigt. U.A. steht da auch etwas zu padding etc.

Lange Rede, kurzer Sinn:
Ich kenne die LaTeX Integration bisher gar nicht, aber es sollten im Web dazu Informationen zu finden sein. Im schlimmsten Fall musst du dir den Python Code in lilypond-book.py ansehen und ggf. anpassen.

So wie ich das allerdings bisher sehe, gibt es keine Möglichkeit, irgendwelche Parameter an TeX zu übergeben.

Liebe Grüße,
Michael

iugin

  • Member
Re: Lilypond - LaTex Layout
« Antwort #4 am: Dienstag, 9. Juni 2015, 12:15 »
Hallo!

Eine andere (mühsame) Möglichkeit wäre:
Wenn du im File Test.tex schaust (wird von lilypond-book erzeugt), siehst du diese Linie:
\input{2e/lily-69733502-systems.tex}Du kannst den File 2e/lily-69733502-systems.tex öffnen, und z.B. den Befehl
\vspace {1cm}zwischen den verschiedenen Abschnitten einfügen.
So kannst du das Verhalten beeinflussen.
Ist aber ziemlich aufwendig und geht beim nächsten Kompilieren verloren.

Edit: Vielleicht ist die beste Lösung, alle erzeugte pdf-Files (einer für jede Zeile) in einem Ordner zu speichern und anschliessend, jeden einzeln mit \includepdf zu importieren, und dazwischen den Abstand mit \vspace zu korrigieren. Wenn du ganze Seiten hast, machst du am besten einen pdf mit Lilypond und importierst du jede Seite der Partitur in Latex.

Lieber Gruss

Eugenio
« Letzte Änderung: Dienstag, 9. Juni 2015, 12:33 von iugin »

pdqbach

  • Member
Re: Lilypond - LaTex Layout
« Antwort #5 am: Dienstag, 9. Juni 2015, 17:34 »
Lieber Eugenio,

wenn ich irgendwelche Dateien händisch ändern muss, sehe ich keinen Nutzen, Dokumente mit LaTex zu schreiben, dann kann ich auch den Text direket in Lilypond erzeugen.
Es muss aber doch eine Möglichkeit geben, Text und Musik komfortabel miteinander zu verbinden. Liedzettel, Vorworte, Etüdensammlungen, Instrumentalschulen, Arbeitsblätter, für all diese Projekte wäre das doch wichtig??

HG

Pepe

iugin

  • Member
Re: Lilypond - LaTex Layout
« Antwort #6 am: Dienstag, 9. Juni 2015, 17:42 »
Hallo Pepe

ja, ich bin der gleichen Meinung.
Ich habe aber ein bisschen in Internet recherchiert, und habe nichts gefunden. Vielleicht interessiert dir diese Diskussion, insbesondere:
Zitat
Yes and the key concept here is that systems become images. Two
systems = two images. Skylines do not work here, that's why for
multi-system music is better to insert a single image for the whole
score. LilyPond-Book is perfect for single-line fragments.
Das Problem ist, dass lilypond-book die Systeme so schneidet, dass nur die Noten Platz haben. Wie man dieses Verhalten ändern kann, weiss ich leider nicht.

Einen lieben Gruss

Eugenio

mgd

  • Member
Re: Lilypond - LaTex Layout
« Antwort #7 am: Mittwoch, 10. Juni 2015, 03:19 »
Ich bin ein wenig unsicher, ob ich mich in meinem letzten Beitrag zu diesem Thread einfach nur unklar ausgedrückt habe. Jedenfalls nochmal hier klar und deutlich wiederholt:

lilypond-book sieht KEINE Möglichkeit vor, irgendwelche Parameter an TeX zu übergeben.

Da ist es relativ irrelevant, ob das wünschenswert wäre oder nicht...

Die Alternative wäre, lilypond-book.py zu erweitern. Oder man verwendet z.B. die LibreOffice Erweiterung für lilypond (anstelle von LaTeX). Ich weiss indessen nicht, ob die nicht vllt die gleichen Einschränkungen hat.

Allerdings fördert das Lesen in der Lilypond (lilypond-book) Dokumentation ein paar ev. hilfreiche Hinweise zu Tage. Der Befehl unter Linux dazu lautetinfo lilypond(vorausgesetzt die texinfo Dokumentation von lilypond ist installiert).

Für die Windows und OSX Anwender unter uns habe ich mal den Teil, der mir besonders relevant erschien heraus kopiert und als TXT gespeichert. Ihr findet ihn als Anhang zu diesem Post.

HTH,
Michael

iugin

  • Member
Re: Lilypond - LaTex Layout
« Antwort #8 am: Mittwoch, 10. Juni 2015, 08:05 »
Hallo Michael

Zitat
Die Alternative wäre, lilypond-book.py zu erweitern
genau das meinte ich mit
Zitat
Wie man dieses Verhalten ändern kann, weiss ich leider nicht
:)

Lieber Gruss

Eugenio


mgd

  • Member
Re: Lilypond - LaTex Layout
« Antwort #9 am: Mittwoch, 10. Juni 2015, 10:23 »
Hmm...ich habe mir jetzt einmal sehr oberflächlich den Code von lilypond-book angeschaut. Die eigentliche Arbeit wird von den Python Klassen erledigt, die auf meinem Linux im Verzeichnis/usr/share/lilypond/2.21.19/python zu finden sind. Dort sind es vor allem (aber nicht nur!) die Dateien book_*.py.

Das lilypond-book in /usr/bin ist quasi "nur" ein Aufruffrontend für obige Klassen.

Alle Änderungen müssten wohl in obigen Klassen eingebaut werden. Mir wäre gegenwärtig allerdings nicht klar, was überhaupt verändert werden sollte und ob die gewünschten Ergebnisse nicht auch mit ein wenig TeX-Magic in der aktuellen Version erreicht werden könnten (siehe auch weiter unten)

Nur damit ich sicher bin, dass wir alle auf dem gleichen Stand sind und ich vor allem nichts falsch verstanden habe:
lilypond-book zerlegt einen Score in einzelne Systeme, die dann eps gewandelt und als solche dann in TeX ausgegeben werden.

Meine TeX Kenntnisse sind ein wenig eingerostet, aber ich meine mich zu erinnern, man kann ähnlich wie in lilypond nahezu jeden beliebigen Aspekt des Layouts beeinflussen. Wäre es da nicht eine Möglichkeit in der lytex Source vor dem \lilypondfile{lyfile} ein geeignetes Padding, größere Zeilenabstände, vertikales/horizontales Verscheiben etc. anzugeben ?

Ach ja, die LibreOffice Extension ist seit 2009 nicht mehr aktualisiert worden. Aktuell mit LibreOffice 4.4 läuft sie auf meinem System nicht. Wenn ich die Tage Langeweile habe, werde ich das versuchen zu debuggen. Ich würde aber nicht meine Luft anhalten...

Liebe Grüße,
Michael

erich

  • Member
Re: Lilypond - LaTex Layout
« Antwort #10 am: Donnerstag, 11. Juni 2015, 00:42 »
Donald E. Knuth schreibt in "The TeXbook" 1983 auf Seite 228,229



Die Ausgabe von Bildern wird also durch das Nadelöhr \special bewerkstelligt und beeinflusst das TexSystem nicht direkt.


mgd

  • Member
Re: Lilypond - LaTex Layout
« Antwort #11 am: Donnerstag, 11. Juni 2015, 08:41 »
Ich beim Stöbern im Netz auf 2 Sites gestoßen, die lilypond und LaTeX auf "hohem Niveau" verwenden (will sagen: die Leute hinter den Sites sind sehr aktiv in der internationalen Mailingliste). Vielleicht hilft es ja dem einen oder anderen hier:

http://openlilylib.org/lilyglyphs/
http://beautifulscores.net/

HTH,
Michael

fugenkomponist

  • Member
Re: Lilypond - LaTex Layout
« Antwort #12 am: Donnerstag, 11. Juni 2015, 08:53 »
Ja, Urs Liska & Co. sind da ziemlich aktiv, auch was andere besondere Projekte angeht (wie schreibt man mit 20 Leuten an einem großen Projekt mit 1000 Takten Orchester und Chor?).