Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: pdqbach am Dienstag, 26. Mai 2015, 22:04
-
Liebe Experten,
sehr gerne würde ich es endlich schaffen, lilypond-Schnipsel in .tex-Dokumente einzubauen.
Wenn ich aber vorgehe, wie hier beschrieben:
http://www.lilypond.org/doc/v2.19/Documentation/usage/an-example-of-a-musicological-document
und die lilybook.lytex-Datei abspeichere und anschließend mit lilypond-book --output=out --pdf lilybook.lytex versuche zu starten, beginnt leider keine Kompilierung, sondern ich bekomme (siehe Screenshot) irgenwelche Hinweise, mit denen ich nichts anfangen kann.
Was mache ich falsch??
HG
Pepe
-
Hallo Pepe
es ist schwierig ohne Code zu sagen, was du falsch machst.
Bei mir (Xubuntu 14.04, pdfTeX 3.14, Lilypond 2.18) funktioniert tadellos.
Der Code ist:
\documentclass{article}
\begin{document}
\begin{lilypond}
\relative c'{ c4 }
\end{lilypond}
\end{document}Gespeichert mit beispiel.lytex
Kompiliert mit lilypond-book --output=out --pdf beispiel.lytex
Eine Directory out wird generiert, und drin ist der File beispiel.tex, welchen ich dann mit pdflatex beispiel.tex kompiliere.
Bist du sicher, dass du alles richtig gemacht hast? Am Anfang ist die Interaktion Lilypond-Latex tatsächlich ein bisschen kompliziert.
Ich hoffe, es hilft.
Liebe Grüsse
Eugenio
-
Hallo Eugenio,
danke für die Antwort.
Ich habe jetzt noch einmal alles so wie von Dir erklärt gemacht . gleiches Ergebnis.. Bei mir wird nicht compiliert und auch das Verzeichnis entsteht nicht.
System Win7.
Zur Sicherheit nichmal für einen Dau gefragt: den "lilypond-book"-Befehl schreibe ich in genau dem Verzeichnis, in dem die beispiel.lytex-Datei steht, richtig?
Ist lilypond-book immer automatisch Teil der lilypond-Installation? Wie kann ich feststellen, ob da etwas nicht stimmt??
HG
Peter
-
Hallo Peter,
lilypond-book liegt im selben Verzeichnis wie lilypond(.exe). Deine Konsolenausgabe zeigt, dass lilypond-book aufgerufen wird, es aber beispiel.lytex nicht findet. Deshalb werden die Optionen zum Aufruf angezeigt.
Versuch erstmal, den vollständigen Pfad zur Beispieldatei zu verwenden, am besten ohne Leerzeichen und Sonderzeichen im Pfad, also z.B.
lilypond-book --output=out --pdf D:\Peters_Daten\Finale\Lilypond\Text_und_Lilypond\beispiel.lytex
Gruß, Robert
-
Hallo Robert,
da passiert genau das Gleiche..
HG
Pepe
-
Screenshot? Konsolen-Log?
-
Zwei Ideen:
- Probier mal aus, was passiert, wenn du erstmal keinen zusätzlichen Optionen angibst (also nur lilypond-book beispiel.lytex), um auszuschließen, dass es daran liegt.
- Probier mal aus, das Verzeichnis umzubenennen, damit du keine Leerzeichen im Pfad hast.
Edit: mit der zweiten Idee war ich wohl nicht der erste, hab das überlesen …
-
Lieber Fugenkomponist,
1. erbringt das weiterhin gleiche Ergebnis.
2. Hatte ich schon geändert (und sowohl den Aufruf mit dem gesamten Pfad als auch den Aufruf im Unterverzeichnis getätigt).
Was tun??
HG
Pepe
-
Robert, sehe jetzt erst Deinen Post.
Hier der Screenshot
HG
Pepe
-
Und was passiert, wenn du beispiel.lytex direkt unter D: speicherst und mit
lilypond-book beispiel.lytexkompilierst? Also direkt im Wurzelverzeichnis und ohne alle Optionen?
-
Hi Robert,
gleiches Ergebnis.
Ich frage mich, ob lilypond-book bei mir überhaupt vorhanden ist? Wie kann ich das feststellen??
HG
Pepe
-
Ich frage mich, ob lilypond-book bei mir überhaupt vorhanden ist? Wie kann ich das feststellen??
Ich kenn mich mit lilypond-book kaum aus, kann Dir da also nicht helfen.
Aber natürlich hast Du lilypond-book auf dem Rechner, das zeigt auch der screenshot aus Deinem anfänglichen post.
Gruß,
Harm
-
Hallo Forum,
ich nutze lilypond-book bisher nicht, aber habe es jetzt einmal ausprobiert.
Dazu habe ich das Beispiel von lugin (Eugenio) aus dem 2. Post in diesem Thread unter Linux und Windows ausprobiert. Unter Linux lief das sofort und ohne Probleme, unter Windows habe ich das Verzeichnis "c:\Progrm Files (x86)\LilyPond\usr\bin" zum globalen Pfad hinzugefügt, auf der Konsole dann lilypond-book --output=out --pdf beispiel.lytex >beispiel.log 2>&1 ausgefüht und bekam eine Fehlermeldung:
GNU LilyPond 2.18.2
Programmierfehler: file name not normalized: C:\lilypond-test\out\snippet-names--2096598564.ly
Fortsetzung, die Daumen drücken
»snippet-map--2096598564.ly« wird verarbeitet
Analysieren...
»beispiel.lytex« wird verarbeitet
Analysieren...
Interpretation der Musik...
Vorverarbeitung der grafischen Elemente...
Zeilenumbrüche werden berechnet...
Systeme erstellen...
Layout nach »22/lily-2976b9fd.eps« ausgeben...
Konvertierung nach »22/lily-2976b9fd.pdf«...
Layout nach »22/lily-2976b9fd-1.eps« ausgeben...
Konvertierung nach »22/lily-2976b9fd-1.pdf«...
22/lily-2976b9fd-systems.texi wird geschrieben...
22/lily-2976b9fd-systems.tex wird geschrieben...
22/lily-2976b9fd-systems.count wird geschrieben...
Kompilation erfolgreich beendet
lilypond-book.py (GNU LilyPond) 2.18.2
Reading beispiel.lytex...
Running `pdflatex' on file `c:\tmp\tmpncgt0l.tex' to detect default page settings.
Dissecting...
Writing snippets...
Processing...
Running lilypond...
Linking files...
Traceback (most recent call last):
File "C:\Program Files (x86)\LilyPond\usr\bin\lilypond-book.py", line 776, in ?
main ()
File "C:\Program Files (x86)\LilyPond\usr\bin\lilypond-book.py", line 759, in main
chunks = do_file (files[0])
File "C:\Program Files (x86)\LilyPond\usr\bin\lilypond-book.py", line 621, in do_file
progress (_ ("Compiling %s...") % output_filename)
File "C:\Program Files (x86)\LilyPond\usr\share\lilypond\current\python\lilylib.py", line 142, in progress
print_logmessage ("PROGRESS", s, fullmessage, newline);
File "C:\Program Files (x86)\LilyPond\usr\share\lilypond\current\python\lilylib.py", line 128, in print_logmessage
stderr_write (s + '\n')
File "C:\Program Files (x86)\LilyPond\usr\share\lilypond\current\python\lilylib.py", line 121, in stderr_write
encoded_write (sys.stderr, s)
File "C:\Program Files (x86)\LilyPond\usr\share\lilypond\current\python\lilylib.py", line 63, in encoded_write
f.write (s.encode (f.encoding or 'utf-8', 'replace'))
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 21-23: invalid data
Ich habe mir daraufhin die diversen erzeugten Dateien (*.ly, *.tex*) im Unterverzeichnis ./out mit dem Hexeditor angeschaut, konnte allerdings kein utf-8 Zeichen finden. Lediglich einige CRLF, wo "eigentlich" LF hingehören ;)
Es werden jedoch mehrere PDFs, nebst *.eps und *.ps erzeugt, die alle das erwarte Bild zeigen.
Das ist kein Problem, welches ich dringend gelöst haben möchte - unter Linux läuft alles wie erwartet und das ist sowieso meine bevorzugte Arbeitsumgebung :)
Aber vllt hilft obiges Log ja dennoch bei der Fehlersuche für den OP.
Liebe Grüße,
Michael
Nachtrag:
Ich habe das eben unter Windows ebenfalls mit 2.19.21 getestet. Die Fehlermeldungen sind subtil anders, die Warnung bzgl des nicht normalisierten Dateinamens fehlt völlig, aber die Fehlermeldung bzgl. utf8 nebst Stacktrace am Ende sehen essentiell gleich aus.
-
Ich frage mich, ob lilypond-book bei mir überhaupt vorhanden ist? Wie kann ich das feststellen??
Was sagt denn
lilypond-book --version?
Ist Python installiert?
-
Hallo,
Der Weg andersrum: wenn es also nur um eine Tabelle in LaTeX geht, dann schreibt man das so
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{tabular}{c c c c}
f & \textit{Full} &1 &When the Lord turn'd again the cap- $\mid$ tivity of $\mid$ Sion: \\
&&&then were we $\mid$ like unto $\mid$ them that $\mid$ dream.\\\\
mf& \textit{Full}&2&Then was our mouth $\mid$ fill'd with $\mid$ laugh-\\
&&&ter $\mid$ and our $\mid$ tongue with $\mid$ joy.\\\\
mf&\textit{Full}&2&Then was our mouth $\mid$ fill'd with $\mid$ laugh-\\
&&&ter, $\mid$ aund our $\mid$ tongue with $\mid$ joy.\\
\end{tabular}
\end{document}
(http://www.kielnet.net/home/erich.meyer/test-lilypond.png)
Wie man die originalen Dynamik-Zeichen direkt aus Lilypond importieren kann, weiß ich nicht; dürfte aber gehen, denn sie sind doch über Metafont erzeugt. Sonst müsste man sie als kleine Bilder importieren.
Gruß
Erich
-
Wie man die originalen Dynamik-Zeichen direkt aus Lilypond importieren kann, weiß ich nicht; dürfte aber gehen, denn sie sind doch über Metafont erzeugt. Sonst müsste man sie als kleine Bilder importieren.
Dafür gibt es das LaTeX-Paket lilyglyphs, siehe http://openlilylib.org/lilyglyphs/
-
Hi ihr lieben Helfer,
den Post mit der Tabelle verstehe ich nicht, ist das eventuell ein anderer Thread?
- Robert, Verison 2.16.1
- Michael, für Dummies:
unter Windows habe ich das Verzeichnis "c:\Progrm Files (x86)\LilyPond\usr\bin" zum globalen Pfad hinzugefügt
Wie genau macht man das???
HG
Peter
-
Hallo Peter,
den Post mit der Tabelle verstehe ich nicht, ist das eventuell ein anderer Thread?
Ich vermute ja...das Beispiel stammt i.P. aus dem von mir gestarteten Thread "Tabellen template".
Für Dummies, deshalb etwas ausführlicher ;)
Zum Verständnis, wozu das überhaupt gut ist:
Der Pfad (d.h. die Umgebungsvariable PATH) enthält eine Liste von Verzeichnissen auf deinem System, die vom Betriebssystem in der angegebenen Reihenfolge durchsucht wird, wenn ein Programm aufgerufen wird, ohne dass dessen exakte Position im Dateisystem genau benannt ist. Auf meinem System ist z.B. der vollständige Pfadname für das Programm Lilypond dieser:
"c:\Program Files (x86)\LilyPond\usr\bin\lilypond.exe"Im obigen Beispiel sind die Anführungszeichen notwendig, weil der Pfad ein Leerzeichen enthält.
Damit das Programm auch gefunden wird, wenn man einfach nur "lilypond" (ohne die Anführungszeichen) eintippt, muss das Verzeichnis"c:\Program Files (x86)\LilyPond\usr\bin" der Liste der zu durchsuchenden Verzeichnisse hinzugefügt werden, also in die Variable PATH geschrieben werden.
Ein Verzeichnis fügst du zum Pfad wie folgt hinzu:
Du öffnest die Sytemsteuerung, dort klickst du auf "System" (je nach gewählter Darstellungsart ist das ev. nicht ganz einfach zu finden - ich bevorzuge daher die "traditionelle" Darstellung, mit allen Icons in einem großen Panel, aber das ist Geschmackssache).
Wenn "System" geöffnet ist, dort "Erweiterte Systemeinstellungen" öffnen. Es einscheint ein Dialog mit einem Notebook Control. In diesem auf die Lasche "Erweitert" klicken. Auf dieser Seite findest du etwas weiter unten einen Knopf mit der Aufschrift "Umgebungsvariablen". Den klicken, es erscheint ein weiterer (viel zu kleiner ;) ) Dialog mit allen Umgebungsvariablen deines Systems.
Dieser Dialog ist unterteilt in oben "User" und unten "System". "User" sind Variablen, die nur für den aktuellen User gesetzt werden, "System" sind die Variablen für alle Benutzer. Für das Ändern letzterer braucht man i.P. ein Administratorkonto oder jedenfalls einen User, der Administratorberechtigungen bekommen kann.
Ich trage sowas unter Windows aus historischen Gründen meist unter "System" ein, aber für die das grundsätzliche Funktionieren ist es egal; geht unter "User". genauso gut. Tatsächlich mache ich das unter Linux immer unter "User"...sollte vllt mal mein Vorgehen unter Windows überdenken :)
Egal.
Du suchst dir in der Liste ("User" oder "System" - welche dir besser gefällt) die Variable "Pfad" (wird unter Windows in mixed case geschrieben), wählst sie aus und klickst unten auf "Bearbeiten".
Es erscheint ein weiterer (IMO sehr unübersichtlicher) Dialog. Nun gehst du ganz ans Ende des Eingabefeldes und fügst
;c:\Program Files (x86)\LilyPond\usr\bin hinten an. Das Semikolon ';' ist wichtig. Es trennt die einzelnen Listenelemente.
"Speichern" (ev. auch "Ok"), fertig - sollte dabei etwas schief gegangen sein statt "Speichern" "Abbrechen" und den Bearbeitungsdialog nochmal öffnen.
Jede Kommandozeile, die du ab jetzt neu aufrufst, sollte auf den Befehllilypond --version mit einer entsprechenden Ausgabe antworten.
Ist jetzt sehr ausführlich geworden. Wer bis zum Ende gelesen hat und sich auf den Schlips getreten fühlt, hat selber schuld. Allen Anderen ist hoffentlich verständlich geworden, wie das geht ;)
Liebe Grüße,
Michael
-
Hallo Michael,
danke für die sehr ausführliche Erklärung... (-:
Ich habe diesen Pfad aber anscheinend bei der Installation von lilypond zugefügt, denn
lilypond --version ergibt bei mir eine Antwort (2.16.1).
Nur bei lilypond-book --out werden nicht die Dateien erzeugt, die bei anderen erzeugt werden.
??
HG
Pepe
-
Hmm.
Version 2.16.1...
lilypond-book ist bei mir ein python Skript. Was erhälst du, wenn du in einer Kommandozeile den Befehlpython -Veingibst ?
Das erwartete Ergebnis ist "Python 2.x.x".
Wäre es eine Option 2.18.2 (die aktuelle Stable) zu installieren ?
Ev. hat sich da von 2.16.1 zu 2.18.2 substantiell etwas geändert. Ansonsten bin ich an dieser Stelle erst einmal am Ende meiner Weisheit.
Was du noch machen könntest ist, im Lilypond Installationsverzeichnis, dort dann in bin (bei mir wie gesagt"c:\Program Files (x86)\LilyPond\usr\bin" mal ein Directorylisting anschauen und sehen, ob bzw. welche Programme und Skripten da vorhanden sind.
Eine Befehlsfolge in einer Kommandozeile wäre z.B.cd "c:\Program Files (x86)\LilyPond\usr\bin"
dir | moreDa sollte dann irgendwo auch lilypond-book
Aber das sollte alles nicht nötig sein - es sollte zu viele Leute geben, die darüber längst gestolpert wären, wenn das sinnhaft wäre...
Liebe Grüße,
Michael
-
Hallo Michael,
offensichtlich stimmt alles mit der Installation.
python -V ergibt 2.4.5
und in dem ../bin Verzeichnis gibt es eine
lilypond-book.py - Datei.
Soweit, so gut, nur wieso klappt es dann nicht...
HG
Pepe
-
Hmm...
Das sieht für mich jetzt nach irgendeiner Spezialität auf deinem System aus. Ev. irgendwelche andere SW, die z.B. mit dem in lilypond bereitgestellten python in Konflikt gerät. Oder etwas in der Art. Aber letztlich ist das reine Spekulation.
Wenn du das weiter untersuchen möchtest, wären mögliche Maßnahmen diese:
Deinstallation von lilypond, danach Aufruf einer Kommandozeile und testen, ob. z.B. noch irgendwo ein python herumschwirrt durch Eingabe von "python -V". Ich glaube nicht, dass das der Fall ist und selbst wenn, dass es Auswirkungen hätte, aber...
Neuinstallation von lilypond (ev. bei der Gelegenheit auf die aktuelle Stable 2.18.2 wechseln) und schauen, ob das Problem immer noch da ist.
Wenn das auch nichts ändert, bin ich so remote am Ende meiner Weisheit.
Eine aufwändige aber grundsätzliche Möglichkeit wäre es, in einer virtuellen Maschine (VMware, Virtualbox o.ä.) ein Linux deiner Wahl zu installieren und dann lilypond in dieser virtuellen Machine zu nutzen. Aber das ist wie gesagt mit Aufwand verbunden und an sich sollte das alles auch unter Windows laufen.
An diesem letzten Vorschlag erkennst du:
Mir gehen die Ideen aus :)
Liebe Grüße,
Michael
-
Hallo Michael,
danke für Deine Mühe!!!
Ich sehe ein, es scheint mehr ein Problem meines Systems als ein in einem Forum lösbares Problem zu sein. Ich werde meinen Rechner dann mal einpacken und zu einem meiner Computer-Freak-Freunde fahren, das sollte sich lösen lassen....
Danke nochmal und hG
Pepe
-
Liebe Helfer,
es war tatsächlich etwas in der Installation anscheinend defekt. -> Deinstallieren, Ly 2.18.2 neu installieren und jetzt klappt es!
Tut mir leid, dafür Eure Zeit in Anspruch genommen zu haben, auf die Idee, dass es daran liegen könnte, bin ich nicht gekommen!
Danke und Gruß
Pepe