Keine PDF/TEX-Ausgabe nach Upgrade von 2.22 auf 2.24 [gelöst]

Begonnen von tig, Dienstag, 7. Februar 2023, 17:51

« vorheriges - nächstes »

tig

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 (Du darfst diesen Dateianhang nicht ansehen.), das alle drei Zeilen als Seiten beinhaltet. Mit 2.22 waren es 4 PDFs, wobei das "Hauptdokument" (Du darfst diesen Dateianhang nicht ansehen.) 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

Pusteblumi

#1
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://www.mail-archive.com/lilypond-user@gnu.org/msg149111.html

Viele Grüße,
Klaus

tig

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/