1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: cs -*-
4 Translation of GIT committish: 0764a50d470cab82ca29da30298dacd333d3da12
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. For details, see the Contributors'
8 Guide, node Updating translation committishes..
13 @c Translators: Pavel Fric
15 @node Spouštíme lilypond
16 @chapter Spouštíme @command{lilypond}
17 @translationof Running lilypond
19 Dieses Kapitel behandelt die technischen Details, wie Lilypond ausgeführt werden kann.
23 * Běžné používání programu::
24 * Použití v příkazovém řádku::
26 * Častá chybová hlášení::
29 @node Běžné používání programu
30 @section Běžné používání programu
31 @translationof Normal usage
33 Die meisten Benutzer führen LilyPond von einer graphischen Benutzeroberfläche
34 aus. Siehe @rlearning{Übung}, falls Sie dies nicht bereits getan haben. Wenn
35 Sie einen alternativen Editor für Ihre LilyPond-Dateien verwenden, lesen Sie
36 bitte die Dokumentation dieses Editors.
39 @node Použití v příkazovém řádku
40 @section Použití v příkazovém řádku
41 @translationof Command-line usage
43 Dieser Abschnitt enthält zusätzliche Informationen, wie Sie LilyPond
44 von der Kommandozeile ausführen können. Dies kann erforderlich sein,
45 um etwa zusätzliche Optionen an das Programm zu übergeben. Außerdem
46 sind einige Zusatzprogramme (wie etwa @code{midi2ly}) nur von der
47 Kommandozeile verfügbar.
49 Unter @q{Kommandozeile} verstehen wir die Kommandozeile des jeweiligen
50 Betriebssystems. Windows Benutzern ist sie vielleicht eher unter den
51 englischen Begriffen @q{DOS shell} oder @q{command shell} bekannt.
52 MacOS@tie{}X Benutzer kennen sie eher unter @q{Terminal} oder @q{Konsole}.
53 Einige zusätzliche Einrichtungsarbeiten werden unter MacOS@tie{}X,
56 Wie die Kommandozeile im jeweiligen Betriebssystem benutzt werden kann,
57 soll in diesem Handbuch nicht näher beschrieben werden. Sehen Sie bitte
58 im Handbuch Ihres Betriebssystems nach oder informieren Sie sich im
59 Internet, wenn Sie mit der Kommandozeile nicht vertraut sind.
63 * Vyvolání lilypondu::
64 * Volby lilypondu v příkazovém řádku::
65 * Proměnné prostředí::
66 * LilyPond v žaláři chroot::
69 @node Vyvolání lilypond
70 @subsection Vyvolání @command{lilypond}
71 @translationof Invoking lilypond
73 @cindex @command{lilypond} aufrufen
74 @cindex Kommandozeilen-Optionen für @command{lilypond}
75 @cindex Optionen an der Kommandozeile
77 Das @command{lilypond} Programm kann folgendermaßen von der Kommandozeile
81 lilypond [@var{Option}]@dots{} @var{Dateiname}@dots{}
85 Wird ein @file{Dateiname} ohne Erweiterung angegeben, so wird @file{.ly} als
86 Standarderweiterung für LilyPond-Dateien benutzt. Um Daten von
87 @code{stdin} einzulesen, benutzen Sie einfach einen Bindestrich (@code{-})
90 Wenn Lilypond die Datei @file{Dateiname.ly} verarbeitet, werden daraus
91 die Dateien @file{Dateiname.ps} und @file{Dateiname.pdf} erzeugt.
92 Es können an @code{lilypond} auch mehrere @file{.ly} Dateien übergeben
93 werden, die dann einzeln und voneinander unabhängig abgearbeitet
94 werden.@footnote{Der Zustand von GUILE wird allerdings nicht nach
95 jeder Datei zurückgesetzt, sodass Achtung geboten ist, wenn in einer
96 Datei globale Änderungen von Scheme aus durchgeführt werden.}
98 Falls @file{Dateiname.ly} mehr als eine @code{\book}-Umgebung enthält,
99 werden die weiteren Stücke in durchnummerierte Dateien der Form
100 @file{Dateiname-1.pdf} ausgegeben. Zusätzlich wird der Wert der
101 Variable @code{output-suffix} zwischen den ursprünglichen Dateinamen
102 und der Zahl eingefügt. Eine Lilypond-Datei @file{Dateiname.ly} mit dem Inhalt
105 #(define output-suffix "Geige")
107 #(define output-suffix "Cello")
112 erzeugt daher die Dateien @var{Dateiname}@file{-Geige.pdf} und
113 @var{Dateiname}@file{-Cello-1.pdf}.
117 @unnumberedsubsubsec Häufige Kommandozeilenbefehle
119 Wenn Ihre Kommandozeile normale Weiterleitungen unterstützt, können
120 Sie es nützlich finden, mit folgenden Befehlen die Ausgabe der
121 Kommandozeile in eine Datei zu leiten:
126 @code{lilypond file.ly 1>stdout.log} um normale Ausgabe zu erhalten
128 @code{lilypond file.ly 2>stderr.log} um chybová hlášení zu erhalten
131 @code{lilypond file.ly &>all.log} um alle Meldungen zu erhalten
135 Wenden Sie sich an die Dokumentation für Ihre Kommandozeile, um
136 zu sehen, ob derartige Optionen unterstützt werden oder die Syntax
137 unterschiedlich ist. Beachten Sie, dass es sich hier um
138 reine Verwaltungsprogramme handelt, die nichts mit LilyPond zu tun
142 @node Volby v příkazovém řádku pro lilypond
143 @subsection Volby v příkazovém řádku pro @command{lilypond}
144 @translationof Command line options for lilypond
146 Die folgenden Kommandozeilenoptionen werden von @command{lilypond} unterstützt:
148 @cindex @command{lilypond} auf der Kommandozeile
149 @cindex Kommandozeile, @command{lilypond} aufrufen
150 @cindex Optionen, Kommandozeile
151 @cindex Terminal, @command{lilypond} aufrufen
155 @item -e,--evaluate=@var{expr}
156 Wertet den Scheme-Ausdruck @var{expr} aus, bevor die @file{.ly} Dateien
157 gelesen und interpretiert werden.
158 Die @code{-e} Option kann auch mehrfach angegeben werden, die Ausdrücke
159 werden nacheinander ausgewertet.
161 Da der Ausdruck im @code{guile-user} Modul ausgewertet wird, ist bei der
162 Definitionen innerhalb von @var{expr} folgendes Vorgehen nötig. An der
163 Kommandozeile wird z.B. @code{a} im @code{guile-user} Modul definiert:
166 lilypond -e '(define-public a 42)'
170 Am Beginn der @file{.ly}-Datei muss dann das @code{guile-user} Modul noch geladen werden, bevor die Definition von @var{a} verfügbar ist:
173 #(use-modules (guile-user))
177 @item -f,--format=@var{Format}
178 Bestimmt das Ausgabeformat. Mögliche Werte von @var{Format} sind
179 @code{svg}, @code{ps}, @code{pdf} und @code{png}.
181 Beispiel: @code{lilypond -fpng @var{Dateiname}.ly}
185 @item -d,--define-default=@var{Variable}=@var{Wert}
186 Damit wird die interne Programmoption @var{Variable} auf den Scheme-Wert
187 @var{Wert} gesetzt. Wird kein @var{Wert} angegeben, so wird @var{#t} benutzt.
188 Um eine Option auszuschalten, kann der Präfix @code{no-} dem Namen
189 @var{Variable} der Variable vorangestellt werden. So ist etwa
191 @cindex Point and Click, Kommandozeile
200 -dpoint-and-click='#f'
203 Hier sind ein paar interessante Optionen:
205 @cindex Hilfe, Kommandozeile
209 Die Ausführung von @code{lilypond -dhelp} zeigt alle verfügbaren @code{-d}
212 @cindex Papierformat, Kommandozeile
215 Setzt das Standard-Papierformat,
217 -dpaper-size=\"letter\"
221 Die Zeichenkette, die das Format angibt, muss in Anführungszeichen mit Backslash
222 ( @code{\"} ) stehen.
224 @cindex sicher, Kommandozeile
225 @cindex safe, Kommandozeile
228 Vertraut der @file{.ly} Datei nicht.
230 Wenn LilyPond über einen Webserver verfügbar gemacht wird, @b{MUSS} unbedingt
231 eine die Optionen @code{--safe} oder @code{--jail} angegeben werden.
232 Die @code{--safe} Option verhindert, dass in der @file{.ly}-Datei angegebener
233 Scheme-Code das System gefährden kann, wie etwa in folgendem Beispiel:
239 c4^#(ly:export (ly:gulp-file "/etc/passwd"))
244 Mit der @code{-dsafe} Option werden alle Scheme-Ausdrücke einem speziellen
245 sicheren Modus ausgewertet. Dieser Modus ist vom GUILE @file{safe-r5rs} Modul
246 abgeleitet und fügt noch zahlreiche weitere erlaubte Funktionen der
247 LilyPond Programm-Schnittstelle hinzu. Diese Funktionen sind in
248 @file{scm/safe-lily.scm} angegeben.
250 Zusätzliche verbietet der sichere Modus auch @code{\include} Befehle.
252 Im sicheren Modus ist es nicht möglich, LilyPond-Variablen nach Scheme
255 @code{-dsafe} erkennt jedoch @emph{KEINE} Überbeanspruchung der verfügbaren
256 Ressourcen. In diesem Modus ist es also trotzdem möglich, dass LilyPond in einer
257 Endlosschleife hängt, z.B. wenn zyklische Datenstrukturen an das Backend
258 übergeben werden. Wenn LilyPond also auf einem öffentlich zugänglichen
259 Webserver verfügbar gemacht wird, sollte der Prozess sowohl in der CPU-
260 als auch in der Speichernutzung limitiert werden.
262 Der sichere Modus verhindert auch, dass zahlreiche nützliche
263 Musikfragmente von LilyPond verarbeitet werden. Die @code{--jail} Option ist
264 eine sicherere Alternative, benötigt allerdings auch mehr Aufwand zur
267 @cindex Ausgabeformat, Definition von
270 Gibt an, welches Ausgabeformat das LilyPond Backend benutzt. Mögliche Werte
271 für diese Option sind:
275 PostScript-Ausgabeformat.
277 @cindex PostScript Ausgabeformat
279 Postscript-Dateien enthalten auch TTF-, Type1- und OTF-Schriften. Allerdings
280 wird die gesamte Schriftart eingefügt und nicht nur die benötigten Zeichen.
281 Vor allem wenn nicht-westliche Zeichensätze benutzt werden, kann dies zu sehr
282 großen Dateien führen.
284 @cindex PostScript Ausgabeformat
285 @cindex EPS (encapsulated PostScript)
288 Erzeugt @q{encapsulated PostScript} (EPS). Jede Seite (oder jedes System) wird
289 als eigene @file{EPS}-Datei ausgegeben, inklusive Schriftarten. Außerdem wird
290 eine Datei mit allen Seiten (bzw. Systemen) und Schriftarten erzeugt.
292 Dies ist die Standardeinstellung von @command{lilypond-book}.
294 @cindex SVG (scalable vector graphics)
295 @cindex Vektorgraphik (SVG)
299 SVG-Ausgabe (Scalable Vector Graphics).
301 Hiermit wird eine einzelne SVG-Datei ohne eingebundene Schriften
302 für jede Seite der Partitur erstellt. Es wird empfohlen, Century
303 Schoolbook-Schriftarten zu installieren, die auch in der LilyPond-Installation
304 enthalten sind, um optimales Rendern zu erhalten. Unter UNIX können
305 diese Schriftarten einfach aus dem LilyPond-Verzeichnis (normalerweise
306 @file{/usr/share/lilypond/@/VERSION/fonts/otf/}) nach @file{~/.fonts}
307 kopiert werden. Die SVG-Ausgabe sollte mit allen SVG-Editoren oder
308 Betrachtungsprogrammen kompatibel sein.
313 gibt die rohen Scheme-basierenden Zeichenbefehle aus, wie sie intern von
314 LilyPond benutzt werden.
319 Keine Partitur wird ausgegeben, hat gleichen Effekt wie @code{-dno-print-pages}.
323 Beispiel: @code{lilypond -dbackend=svg @var{Dateiname}.ly}
328 Erzeugt eine Ausgabedatei, die nur die Titelzeilen und das erste System
329 enthält. Wenn @code{\bookpart}-Umgebungen benutzt werden, erscheinen die
330 Titel und ersten Systeme jedes @code{\bookpart}-Abschnitts in der Datei.
331 Die Backends @code{ps}, @code{eps} und @code{svg} unterstützen diese Option.
334 Erzeugt vollständige Seiten (Standardeinstellung). @code{-dno-print-pages}
335 ist in Verbindung mit @code{-dpreview} nützlich.
342 Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen.
344 @item -H,--header=@var{FELD}
345 Gibt den Inhalt eines Feldes aus dem @code{\header}-Block in die Datei
346 @file{Dateiname.@var{FELD}} aus.
348 @item --include, -I=@var{Verzeichnis}
349 Fügt @var{Verzeichnis} zur Liste der Suchpfade hinzu.
354 Mehrere -I-Optionen können angegeben werden. Die Suche beginnt mit dem
355 ersten definierten Verzeichnis und setzt in den weiteren Verzeichnissen
356 fort, wenn die gesuchte Datei nicht in dem Verzeichnis gefunden wird.
358 @item -i,--init=@var{Initialisierungsdatei}
359 Benutzt @var{Initialisierungsdatei} zur gesamten Programminitialisierung. Der
360 Standardwert ist @file{init.ly}.
362 @cindex Verzeichnis, Ausgabe speichern in
363 @cindex Ausgabedateiname
365 @item -o,--output=@var{DATEI}
366 Schreibt das Ergebnis der Verarbeitung mit LilyPond in die Ausgabedatei
367 @var{DATEI}. Wenn ein Verzeichnis mit dem Namen existiert, werden die Ausgabedateien
368 in dieses Verzeichnis gespeichert, wobei der Dateiname der Eingabedatei
369 benutzt wird. Die entsprechende Dateinamenserweiterung wird angehängt (z.B.
370 @code{.pdf} für pdf).
372 @cindex PostScript-Ausgabe
378 @cindex Portable Network Graphics (PNG)
381 Erzeugt eine Grafik-Datei im PNG-Format von jeder Seite. Diese Option
382 impliziert auch @code{--ps}. Die Auflösung in DPI der Grafik kann festgelegt
389 @cindex Portable Document Format (PDF)
392 Erzeugt PDF-Dateien. Dies impliziert @code{--ps}.
394 @item -j,--jail=@var{Benutzer},@var{Gruppe},@var{Jail-Verzeichnis},@var{Arbeitsverzeichnis}
395 Führt @command{lilypond} in einem chroot-Jail aus.
397 Die @code{--jail} Option ist eine flexiblere Alternative zu @code{--safe}, wenn
398 LilyPond über das Internet verfügbar gemacht wird oder LilyPond-Quelldateien
399 von Dritten automatisch verarbeitet werden.
401 Sie funktioniert dergestalt, dass das Wurzelverzeichnis von
402 @command{lilypond} auf @var{Jail-Verzeichnis} gesetzt wird, bevor die
403 tatsächliche Kompilierung der @file{.ly}-Datei beginnt. Der Benutzer und die Gruppe
404 werden auf die angegebenen Werte gesetzt und das aktuelle Arbeitsverzeichnis
405 wird ebenfalls auf den angegebenen Wert @var{Arbeitsverzeichnis} gesetzt.
406 Diese Einstellungen garantieren (zumindest in der Theorie), dass es nicht
407 möglich ist, aus dem Jail auszubrechen. Damit @code{--jail} funktioniert, muss
408 @command{lilypond} allerdings als root ausgeführt werden, was normalerweise
409 auf sichere Art mit dem Kommando @command{sudo} erreicht werden kann.
411 Das Jail-Verzeichnis zu erstellen ist etwas heikel, da LilyPond alle zur
412 Ausführung nötigen Bibliotheken und Dateien @emph{innerhalb des
413 Jail-Verzeichnisses} finden muss. Ein typisches Setup besteht aus folgenden
417 @item Erstellung eines getrennten Dateisystems
418 Ein eigenes Dateisystem muss für LilyPond erstellt werden, sodass es mit
419 sicheren Einstellungen wie @code{noexec}, @code{nodev} und @code{nosuid}
420 eingebunden werden kann. Damit ist es unmöglich, Programme von diesem
421 Dateisystem auszuführen oder direkt auf eine Hardware-Schnittstelle
422 zuzugreifen. Wenn Sie keine eigene Partition erstellen möchten, können Sie
423 auch eine Datei der entsprechenden Größe erstellen und sie als @q{loop}-Gerät
424 einbinden. Ein getrenntes Dateisystem garantiert auch, dass LilyPond nicht
425 mehr Festplattenspeicher benutzt als erlaubt.
427 @item Erstellung eines eigenen Benutzerkontos
428 Es sollte ein eigener Benutzer und eine eigene Gruppe (z. B.
429 @code{lily}/@code{lily}) mit geringen Rechten für die Ausführung von LilyPond
430 innerhalb des Jails benutzt werden. Nur ein einziges Verzeichnis des Jails sollte
431 für den Benutzer schreibbar sein und als @var{Arbeitsverzeichnis} an
432 @code{lilypond} übergeben werden.
434 @item Einrichtung des Jails
435 LilyPond muss zahlreiche Dateien für die Ausführung einlesen. All diese
436 Dateien müssen in das Jail-Verzeichnis kopiert werden (mit denselben Pfaden
437 wie im tatsächlichen Wurzel-Dateisystem). Die gesamte LilyPond-Installation
438 (typischerweise @file{/usr/share/lilypond}) sollte kopiert werden.
440 Falls Probleme auftreten, ist es am einfachsten, Lilypond mittels
441 @command{strace} zu starten, wodurch Sie relativ leicht feststellen können,
442 welche Dateien im Jail noch fehlen.
444 @item Ausführung von LilyPond
445 In einem mit @code{noexec} eingebundenen Jail ist es nicht möglich, externe
446 Programme auszuführen. Daher muss LilyPond auf eine Art gestartet werden,
447 die keine weitere Ausführung von Programmen benötigt. Wie bereits erwähnt
448 muss LilyPond mit Administrator-Rechten gestartet werden (die es allerdings
449 sofort wieder abgibt), beispielsweise mittels @command{sudo}. Außerdem
450 ist es eine gute Idee, die LilyPond zur Verfügung stehende CPU-Zeit zu
451 limitieren (z. B. mit @command{ulimit -t}) und -- falls das Betriebssystem
452 dies unterstützt -- auch den zur Verfügung stehenden Hauptspeicher.
457 Gibt die Versionsnummer aus.
460 Gibt ausführliche informative Meldungen aus: Zeigt die vollen Dateipfade
461 aller gelesenen Dateien sowie Informationen über die Laufzeit.
464 Zeigt die Garantiebedingungen an, unter denen GNU LilyPond steht. (Es besteht
465 @strong{KEINERLEI GARANTIE}!)
469 @node Proměnné prostředí
470 @subsection Proměnné prostředí
471 @translationof Environment variables
474 @cindex LILYPOND_DATADIR
475 @cindex Proměnné, prostředí
476 @cindex Proměnné prostředí
478 @command{lilypond} erkennt und benützt die folgenden proměnné prostředí:
480 @item LILYPOND_DATADIR
481 Diese Variable gibt das Verzeichnis an, wo Lilypond seine eigenen Dateien,
482 Meldungen und Übersetzungen finden kann. Dieses Verzeichnis sollte
483 Unterverzeichnisse @file{ly/}, @file{ps/}, @file{tex/}, etc. beinhalten.
486 Gibt die Sprache an, in der Warnungen und chybová hlášení ausgegeben werden.
488 @item LILYPOND_GC_YIELD
489 Mit dieser Variable (mit Werten zwischen 0 und 100) kann die Feinabstimmung
490 zwischen dem Bedarf an Hauptspeicher und Rechenleistung bei der Ausführung
491 von LilyPond durchgeführt werden. Bei höheren Werten benutzt LilyPond
492 mehr Hauptspeicher, benötigt aber weniger Prozessor-Leistung. Bei
493 niedrigeren Werten wird mehr Prozessor-Zeit, dafür weniger Hauptspeicher
494 benötigt. Voreinstellung ist ein Wert von @code{70}.
500 @node LilyPond v žaláři chroot
501 @unnumberedsubsec LilyPond v žaláři chroot
502 @translationof LilyPond in chroot jail
504 Einen Server einzurichten, der LilyPond in einem chroot-Kerker bedient, ist
505 recht kompliziert. Die einzelnen Schritten finden sich unten aufgeliestet.
506 Beispiele sind für Ubuntu Linux und erfordern evtl. die Benutzung von
507 @code{sudo} an den entsprechenden Stellen.
511 @item Installieren Sie die nötigen Pakete: LilyPond, GhostScript und ImageMagick.
513 @item Erstellen Sie einen neuen Benutzer mit dem Namen @code{lily}:
520 Hierdurch wird auch eine Gruppe @code{lily} und ein Heimat-Ordner
521 @code{/home/lily} für den neuen Benutzer erstellt.
523 @item Im Heimat-Ordner des Benutzers @code{lily} erstellen Sie eine Datei, die als
524 eigenes Dateisystem eingesetzt wird:
527 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
531 In diesem Beispiel wird eine 200-MB-Datei als Kerker-Dateisystem erstellt.
533 @item Erstellen Sie ein loop device, erstellen Sie ein Dateisystem und
534 mounten Sie es, dann erstellen Sie dort einen Ordner, in dem der Benutzer
535 @code{lily} Schreibrechte hat:
539 losetup /dev/loop0 /home/lily/loopfile
540 mkfs -t ext3 /dev/loop0 200000
541 mount -t ext3 /dev/loop0 /mnt/lilyloop
542 mkdir /mnt/lilyloop/lilyhome
543 chown lily /mnt/lilyloop/lilyhome
546 @item In der Konfiguration des Servers ist der Kerker (JAIL) @code{/mnt/lilyloop}
547 und das Verzeichnis (DIR) @code{/lilyhome}.
549 @item Erstellen Sie einen großen Verzeichnisbaum in dem Kerker, indem Sie die
550 notwendigen Dateien dorthin kopiert, wie das Beispielskript unten zeigt.
552 Sie könne @code{sed} benutzen, um die notwendigen Kopierbefehle für ein
553 bestimmtes Programm zu erstellen:
556 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/; \
557 do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& \
558 cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \
559 \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
564 @subheading Beispiel-Skript für 32-bit Ubuntu 8.04
572 loopdevice=/dev/loop0
573 jaildir=/mnt/lilyloop
574 # the prefix (without the leading slash!)
576 # the directory where lilypond is installed on the system
577 lilydir=/$lilyprefix/lilypond/
579 userhome=$home/$username
580 loopfile=$userhome/loopfile
582 dd if=/dev/zero of=$loopfile bs=1k count=200000
584 losetup $loopdevice $loopfile
585 mkfs -t ext3 $loopdevice 200000
586 mount -t ext3 $loopdevice $jaildir
587 mkdir $jaildir/lilyhome
588 chown $username $jaildir/lilyhome
591 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
594 cp -r -L $lilydir $lilyprefix
595 cp -L /bin/sh /bin/rm bin
596 cp -L /usr/bin/convert /usr/bin/gs usr/bin
597 cp -L /usr/share/fonts/truetype usr/share/fonts
599 # Now the library copying magic
600 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh" \
601 "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=> \
602 \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed \
603 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' \
604 | sed '/.*=>.*/d'; done | sh -s
606 # The shared files for ghostscript...
607 cp -L -r /usr/share/ghostscript usr/share
608 # The shared files for ImageMagick
609 cp -L -r /usr/lib/ImageMagick* usr/lib
611 ### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
612 ### you should be able to run:
613 ### Note that /$lilyprefix/bin/lilypond is a script, which sets the
614 ### LD_LIBRARY_PATH - this is crucial
615 /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
619 @node Chybová hlášení
620 @section Chybová hlášení
621 @translationof Error messages
623 @cindex error messages
624 @cindex Chybová hlášení
626 Während der Verarbeitung einer Dateien können diverse Meldungen an der
627 Kommandozeile auftreten:
631 @item Warnung (Warning)
633 Irgendetwas ist verdächtig. Wenn Sie etwas Ungewöhnliches in Ihrer
634 Datei durchführen, dann werden Sie die Meldung verstehen und können
635 sie gegebenenfalls ignorieren. Im Normalfall jedoch bedeutet eine
636 Warnung, dass mit Ihrer Datei etwas nicht stimmt, LilyPond jedoch
637 trotzdem versucht, die Datei soweit wie möglich korrekt zu übersetzen.
641 Irgendetwas stimmt definitiv nicht. Der aktuelle Bearbeitungsschritt
642 (Einlesen, Interpretieren oder Formatieren der Datei) wird noch fertig
643 ausgeführt, danach bricht die Bearbeitung aber ab.
645 @item Fataler Fehler (Fatal error)
646 @cindex Fataler Fehler
647 Irgendetwas stimmt definitiv nicht und LilyPond kann nicht weiter
648 ausgeführt werden. Dies ist nur sehr selten der Fall, meist sind
649 die Schriftarten nicht korrekt installiert.
651 @item Scheme Fehler (Scheme error)
652 @cindex Fehlerprotokoll, Scheme
653 @cindex Scheme Fehler
654 Fehler, die während der Ausführung von Scheme-Code auftreten, werden
655 vom Scheme-Interpreter aufgefangen und an der Kommandozeile ausgegeben.
656 Wenn Sie LilyPond mit der @code{--verbose} Option (auch @code{-V})
657 ausführen, wird der sogenannte @q{Call trace} ausgegeben, der die
658 aufgerufenen Funktionen zur Zeit des Fehlers angibt.
660 @item Programmierfehler (Programming error)
661 @cindex Programmierfehler
662 Eine interne Inkonsistenz ist aufgetreten. Diese chybová hlášení
663 sollen den Programmierern die Fehlersuche erleichtern und
664 können meistens einfach ignoriert werden. In manchen Fällen werden
665 so viele Meldungen ausgegeben, dass die Lesbarkeit der restliche
666 Ausgabe davon beeinträchtigt wird.
668 @item Abgebrochen (core dumped)
669 Dies bezeichnet einen ernsten Programmierfehler, der das Programm
670 zum Absturz gebracht hat. Solche Fehler werden als kritisch angesehen.
671 Falls daher einer auftritt, senden Sie bitte einen Bug-Report!
674 @cindex Chybové hlášení, formát
675 @cindex Formát chybového hlášení
676 Wenn Warnungen oder chybová hlášení mit einer konkreten Stelle in der
677 Eingabedatei verknüpft werden können, dann hat die Meldung die folgende
681 @var{Dateiname}:@var{Zeile}:@var{Spalte}: @var{Meldung}
682 @var{Fehlerhafte Eingabezeile}
685 Ein Zeilenumbruch wird in der fehlerhaften Zeile an jener Stelle eingefügt,
686 wo der Fehler aufgetreten ist. Zum Beispiel
689 test.ly:2:19: Fehler: keine gültige Dauer: 5
694 Diese Stellen sind LilyPonds Vermutung, wo die Warnung oder der Fehler
695 aufgetreten ist, allerdings treten Warnungen und Fehler ja gerade in
696 unerwarteten Fällen auf. Manchmal kann Lilypond auch eine fehlerhafte
697 Stelle zwar noch problemlos verarbeiten, ein paar Zeilen später wirkt
698 sich der Fehler aber dann doch noch aus. In solchen Fällen, wo Sie in
699 der angegebenen Zeile keinen Fehler erkennen, sollten Sie auch die Zeilen
700 oberhalb der angegebenen Stelle genauer unter die Lupe nehmen.
702 Mehr Information darüber findet sich in @ref{Častá chybová hlášení,,častých chybových hlášeních}.
706 @node Častá chybová hlášení
707 @section Častá chybová hlášení
708 @translationof Common errors
710 Chybová hlášení, die unten beschrieben werden, treten of auf,
711 es ist jedoch nicht immer einfach, die Urache zu finden. Wenn
712 der Fehler einmal verstanden ist, kann er einfach behoben werden.
716 * Noty ubíhají pryč ze strany::
717 * Ein zusätzliches System erscheint::
718 * Zřejmá chyba v @code{../ly/init.ly}::
719 * Chybové hlášení Nespojená proměnná %::
720 * Chybové hlášení FT_Get_Glyph_Name::
721 * Varování: staff affinities by měly jen klesat::
724 @node Noty ubíhají pryč ze strany
725 @unnumberedsubsec Noty ubíhají pryč ze strany
726 @translationof Music runs off the page
728 Noten, die rechts aus der Seite herauslaufen oder sehr komprimiert
729 aussehen, liegen in fast allen Fällen an einer falschen Notendauer
730 einer Note, die dazu fürt, dass die letzte Note im Takt über die
731 Taktgrenze hinwegdauert. Es ist nicht falsch, wenn die letzte
732 Note eines Taktes über den Takt hinausdauert, weil einfach angenommen
733 wird, dass sie im nächsten Takt fortgesetzt wird. Aber wenn eine
734 längere Sequenz dieser überhängenden Noten auftritt, können die
735 Noten sehr gedrängt aussehen oder über den Seitenrand fließen, weil
736 die automatische Zeilenumbruchsfunktion einen Umbruch nur am Ende
737 eines vollständigen Taktes einfügen kann, also wenn alle Noten
738 zum Ende des Taktstriches auch wirklich aufhören.
740 @warning{Eine falsche Dauer kann dazu führen, dass Zeilenumbrüche
741 nicht möglich sein und die Zeile entweder sehr gedrängt dargestllt
742 wird oder über den Seitenrand fließt.}
744 Die falsche Dauer kann einfach gefunden werden, wenn Taktstrichüberprüfung
745 eingesetzt wird, siehe @ruser{Takt- und Taktzahlüberprüfung}.
747 If you actually intend to have a series of such carry-over measures
748 you will need to insert an invisible bar line where you want the
749 line to break. For details, see @ruser{Taktstriche}.
752 @node Ein zusätzliches System erscheint
753 @unnumberedsubsec Ein zusätzliches System erscheint
754 @translationof An extra staff appears
756 Wenn Kontext nicht explizit mit @code{\new} oder
757 @code{\context} erstellt werden, werden sie vom Programm erstellt,
758 sobald ein Befehl angetroffen wird, der im aktuellen Kontext nicht
759 funktioniert. In einfachen Partituren ist diese automatische
760 Erstellung sehr nützlich und die meisten Beispiele der LilyPond-Handbücher
761 benutzen diese Schreiberleicherterung. Manchmal jedoch kann es
762 vorkommen, dass durch die automatische Erstellung von Systemen aufeinmal
763 unerwartete Notensysteme erstellt werden. Beispielsweise könnte man
764 annehmen, dass folgendes Beispiel alle Notenköpfe in dem Notensystem
765 rot macht, aber als Resultat hat man zwei Systeme, während die
766 Notenköpfe immernoch schwarz im unteren System erscheinen.
768 @lilypond[quote,verbatim,relative=2]
769 \override Staff.NoteHead #'color = #red
773 Das liegt daran, dass kein @code{Staff}-Kontext existiert, wenn
774 der @code{\override}-Befehl verarbeitet wird, sodass ein System
775 für diesen Befehl erstellt wird. Dann aber erstellt @code{\new Staff}
776 noch ein zusätzliches System, wo die Noten gesetzt werden. Die
777 richtige Schreibweise wäre:
779 @lilypond[quote,verbatim,relative=2]
781 \override Staff.NoteHead #'color = #red
786 Ein zweites Beispiel zeigt, dass ein @code{\relative}-Befehl innerhalb
787 von @code{\repeat} zwei Systeme erstellt, wobei der zweite etwas verschoben
788 ist. Das liegt daran, dass @code{\repeat} zwei @code{\relative}-Umgebungen
789 erstellt, die jede implizit einen @code{Staff}- und @code{Voice}-Kontext
792 @lilypond[quote,verbatim]
794 \relative c' { c4 d e f }
798 Indem man die @code{Voice}-Kontexte explizit erstellt, kann das Problem
801 @lilypond[quote,verbatim]
804 \relative c' { c4 d e f }
810 @node Zřejmá chyba v @code{../ly/init.ly}
811 @unnumberedsubsec Zřejmá chyba v @code{../ly/init.ly}
812 @translationof Apparent error in @code{../ly/init.ly}
814 Verschiedene seltsame chybová hlášení können über Syntax-Fehler in
815 @file{../ly/init.ly} auftauchen, wenn die Eingabedatei nicht richtig
816 formuliert ist, wenn sie etwa nicht richtig passende Klammerpaare
817 oder Anführungszeichen enthält.
819 Der üblichste Fehler ist das Fehlen einer geschweiften Klammer
820 (@code{@}}) am Ende der @code{score}-Umbgebung. Die Lösung ist hier
821 klar: überprüfen Sie, ob die @code{score}-Umgebung richtig beendet
822 wurde. Die richtige Struktur einer Eingabedatei wird beschrieben
823 in @rlearning{Wie eine LilyPond-Eingabe-Datei funktioniert}.
824 Ein Editor, der die Klammerpaare automatisch anzeigt, ist sehr
825 hilfreich, um derartige Fehler zu vermeiden.
827 Eine weitere übliche Fehlerquelle ist kein Leerzeichen zwischen der
828 letzten Silbe einer @code{lyrics}-Umgebung und der schließenden
829 Klammer (@code{@}}). Ohne diese Trennung wird die Klammer als
830 Teil der Silbe gewertet. Es bietet sich immer an, Leerzeichen vor
831 und hinter @emph{jede} Klammer zu setzen. Wie wichtig das ist, wenn
832 Gesangstext eingesetzt wird, siehe @ruser{Was ist Gesangtext}.
834 Diese Fehlermeldung kann auch mit einem fehlenden schließenden Anführungszeichen
835 (@code{"}) auftreten. In diesem Fall sollte die begleitende Fehlermeldung
836 eine Zeilenzahl angeben, die dicht am Fehler liegt. Die nicht paarigen
837 Anführungszeichen sind meistens ein oder zwei Zeilen darüber.
840 @node Chybové hlášení Nespojená proměnná %
841 @unnumberedsubsec Chybové hlášení Nespojená proměnná %
842 @translationof Error message Unbound variable %
844 Diese Fehlermeldung erscheint am Ende der Kommandozeilenausgabe oder in der
845 Log-Datei mit einer Meldung @qq{GUILE signalled an error ...}
846 jedes Mal, wenn eine Scheme-Routine aufgerufen wird, die
847 (falscherweise) ein @emph{LilyPond}-Kommentar und kein
848 @emph{Scheme}-Kommentar enthält.
850 LilyPond-Kommentare befginnen mit dem Prozent-Zeichen (@code{%}) und
851 dürfen nicht in Scheme-Routinen benutzt werden. Scheme-Kommentare beginnen
852 mit einem Semikolon (@code{;}).
854 @node Chybové hlášení FT_Get_Glyph_Name
855 @unnumberedsubsec Chybové hlášení FT_Get_Glyph_Name
856 @translationof Error message FT_Get_Glyph_Name
858 Diese Fehlermeldung erscheint in der Kommandozeilenausgabe, wenn die
859 Datei ein Zeichen enthält, das nicht zu ASCII gehört und die Datei
860 nicht in UTF-8-Kodierung gespeichert wurd. Sie auch @ruser{Zeichenkodierung}.
863 @node Varování: staff affinities by měly jen klesat
864 @unnumberedsubsec Varování: staff affinities by měly jen klesat
865 @translationof Warning staff affinities should only decrease
867 Diese Warnung erscheint, wenn keine Notensysteme in der Ausgabe vorhanden
868 sind, wenn etwa nur @code{ChordName}-Kontext und @code{Lyrics}-Kontext
869 in einem Liedblatt vorhanden sind. Die Warnungen können vermieden werden,
870 indem man einen der Kontexte als System erscheinen lässt, indem man ihm
874 \override VerticalAxisGroup #'staff-affinity = ##f
877 Zu Einzelheiten siehe @qq{Abstand von Nicht-Notensystemzeilen} in
878 @ruser{Flexible vertikale Abstände in Systemgruppen}.