Liebe LilyPond-Experten!
Ich verwende seit Jahren folgende Methode, um mit Lilypond *-systems.tex-Dateien und pro Zeile ein PDF zu generieren (die ich dann in LaTeX weiterverarbeite). Leiter hat mir gestern Homebrew die Lilypond-Version 2.24.0 auf mein macOS 13.2 gespielt und nun funktioniert das leider nicht mehr.
Ich hoffe, ihr könnt mir helfen, das bisherige Ergebnis auch mit 2.24 (und zukünftigen Versionen) erzielen zu können.
Mein Beispiel (test.ly)
%
% test.ly
%
\version "2.22.1"
\include "deutsch.ly"
#(ly:set-option 'backend 'eps)
\paper{
#(include-special-characters)
% Use a fixed line width
line-width = 118\mm
% Set paper height to generate *-systems.tex file
paper-height = 1\mm
indent = 0\mm
% Disable header
evenHeaderMarkup = ##f
oddHeaderMarkup = ##f
% Disable footer
oddFooterMarkup = ##f
evenFooterMarkup = ##f
% Reduce margins
top-margin = 0\mm
bottom-margin = 0\mm
}
\layout {
\context {
\Score
% Turn off bar numbering
\remove "Bar_number_engraver"
}
}
\score {
\new Staff {
\relative c' {
\key c \major
\time 4/4
c4 c c c
d4 d d d \break
e4 e e e
f4 f f f \break
g8[ a] h( c) h4 a
g4 f e d
\bar "||"
}
}
}
convert-ly --from=2.10.0 --to=2.24.0 test.ly ändert nur die Version auf 2.24.0.
Mit Lilipond 2.22.1 führte paper-height = 1\mm dazu, dass einerseite alle drei Zeilen in einer und zusätzlich jede Notenzeile in einer eigenen PDF-Datei geschrieben wurde (EPS-Backend).
Seit Version 2.24.0 habe ich folgende Probleme:
1) Die Höhe der Seiten ist nun tatsächlich 1mm
2) Es wird nur noch ein PDF erzeugt (test_2-24.pdf), das alle drei Zeilen als Seiten beinhaltet. Mit 2.22 waren es 4 PDFs, wobei das "Hauptdokument" (test_2-22.pdf) alle Zeilen auf einer Seite enthielt.
3) #(ly:set-option 'backend 'eps) hat bisher dafür gesorgt, dass die TeX-Dateien erzeugt wurden. Der Aufruf von lilypond -daux-files=#t mit 2.24 erzeugt zwar die gewünschte test-systems.tex Datei (und .count, .texi), nicht aber die darin referenzierten PDF(oder EPS)-Dateien.
LilyPond 2.22.1 (Ubuntu 22.10)
tig@lilybuntu:/test/2.22$ du -hs *
4.0K test.ly
tig@lilybuntu:/test/2.22$ lilypond test.ly
GNU LilyPond 2.22.1
»test.ly« wird verarbeitet
Analysieren...
Interpretation der Musik...
Vorverarbeitung der grafischen Elemente...
Ideale Seitenanzahl wird gefunden...
Musik wird auf 2 oder 3 Seiten angepasst...
Systeme erstellen...
Warnung: Komprimierung über gesamte Seite bei 8.8 Notensystemabständen
Warnung: Seite 1 wurde komprimiert
Warnung: Komprimierung über gesamte Seite bei 8.7 Notensystemabständen
Warnung: Seite 2 wurde komprimiert
Warnung: Komprimierung über gesamte Seite bei 8.7 Notensystemabständen
Warnung: Seite 3 wurde komprimiert
Layout output to `test.eps'...
Konvertierung nach »test.pdf«...
Layout output to `test-1.eps'...
Layout output to `test-2.eps'...
Layout output to `test-3.eps'...
Konvertierung nach »./test-1.pdf«...
Konvertierung nach »./test-2.pdf«...
Konvertierung nach »./test-3.pdf«...
test-systems.texi wird geschrieben...
test-systems.tex wird geschrieben...
test-systems.count wird geschrieben...
Kompilation erfolgreich beendet
tig@lilybuntu:/test/2.22$ du -hs *
84K test-1.eps
12K test-1.pdf
84K test-2.eps
12K test-2.pdf
84K test-3.eps
16K test-3.pdf
4.0K test.ly
20K test.pdf
4.0K test-systems.count
4.0K test-systems.tex
4.0K test-systems.texi
LilyPond 2.24.0 (macOS 13.2)
tig@apfel:/test/2.24$ du -hs *
4,0K test.ly
tig@apfel:/test/2.24$ lilypond test.ly
GNU LilyPond 2.24.0 (running Guile 3.0)
»test.ly« wird verarbeitet
Analysieren...
Interpretation der Musik...
Vorverarbeitung der grafischen Elemente...
Ideale Seitenanzahl wird gefunden...
Fitting music on 2 or 3 pages...
Systeme erstellen...
Warnung: Komprimierung über gesamte Seite bei 8.8 Notensystemabständen
Warnung: Seite 1 wurde komprimiert
Warnung: Komprimierung über gesamte Seite bei 8.7 Notensystemabständen
Warnung: Seite 2 wurde komprimiert
Warnung: Komprimierung über gesamte Seite bei 8.7 Notensystemabständen
Warnung: Seite 3 wurde komprimiert
Converting to `test.pdf'...
Success: compilation successfully completed
tig@apfel:/test/2.24$ du -hs *
4,0K test.ly
20K test.pdf
LilyPond 2.24.0 (macOS 13.2) mit -daux-files=#t
tig@apfel:/test/2.24$ du -hs *
4,0K test.ly
tig@apfel:/test/2.24$ lilypond -daux-files=#t test.ly
GNU LilyPond 2.24.0 (running Guile 3.0)
»test.ly« wird verarbeitet
Analysieren...
Interpretation der Musik...
Vorverarbeitung der grafischen Elemente...
Ideale Seitenanzahl wird gefunden...
Fitting music on 2 or 3 pages...
Systeme erstellen...
Warnung: Komprimierung über gesamte Seite bei 8.8 Notensystemabständen
Warnung: Seite 1 wurde komprimiert
Warnung: Komprimierung über gesamte Seite bei 8.7 Notensystemabständen
Warnung: Seite 2 wurde komprimiert
Warnung: Komprimierung über gesamte Seite bei 8.7 Notensystemabständen
Warnung: Seite 3 wurde komprimiert
Converting to `test.pdf'...
Writing test-systems.texi...
Writing test-systems.tex...
Writing test-systems.count...
Success: compilation successfully completed
tig@apfel:/test/2.24$ du -hs *
4,0K test-systems.count
4,0K test-systems.tex
4,0K test-systems.texi
4,0K test.ly
20K test.pdf
Hallo tig,
willkommen im Forum. Sorry für die späte Antwort, ich bin nicht regelmäßig hier unterwegs. :)
Um die Dateien zu erhalten, die du für LaTeX generieren möchtest, würde ich statt eps-backend und 1mm-Höhe lieber lilypond-book-preamble.ly verwenden:
\include "lilypond-book-preamble.ly"
Seit LilyPond 2.23.5 sind noch zwei Optionen bzw. Parameter nötig, dass die erwünschten Dateien nicht vorzeitig gelöscht werden:
#(ly:set-option 'tall-page-formats 'eps,png,pdf)
#(ly:set-option 'separate-page-formats 'eps,png,pdf)
Versuchs mal damit:
%
% test.ly
%
\version "2.24.1"
\include "deutsch.ly"
\include "lilypond-book-preamble.ly"
#(ly:set-option 'tall-page-formats 'eps,png,pdf)
#(ly:set-option 'separate-page-formats 'eps,png,pdf)
\paper{
#(include-special-characters)
% Use a fixed line width
line-width = 118\mm
indent = 0\mm
}
\layout {
\context {
\Score
% Turn off bar numbering
\remove "Bar_number_engraver"
}
}
\score {
\new Staff {
\relative c' {
\key c \major
\time 4/4
c4 c c c
d4 d d d \break
e4 e e e
f4 f f f \break
g8[ a] h( c) h4 a
g4 f e d
\bar "||"
}
}
}
Damit hatte ich auch schon zu kämpfen.
Hier habe ich die Lösung erfahren:
https://gitlab.com/lilypond/lilypond/-/issues/6235#note_895130650 (https://gitlab.com/lilypond/lilypond/-/issues/6235#note_895130650)
https://www.mail-archive.com/lilypond-user@gnu.org/msg149111.html (https://www.mail-archive.com/lilypond-user@gnu.org/msg149111.html)
Viele Grüße,
Klaus
Servus Klaus!
Herzlichen Dank für die Lösung - klappt prima!
Mittlerweile habe ich auch den Hinweis im Changelog bzgl. der
.tex-datei (-daux-files=#t) gefunden.
ZitatDer Standard der Programmoption aux-files wurde zu #f geändert. Falls LilyPond mit dem Argument -dbackend=eps aufgerufen wird und die Hilfsdateien mit den Endungen '.tex' und '.texi' benötigt werden, muss jetzt auch -daux-files angegeben werden. https://lilypond.org/doc/v2.24/Documentation/changes/