]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/de/usage/running.itely
Imported Upstream version 2.19.47
[lilypond.git] / Documentation / de / usage / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
2
3 @ignore
4     Translation of GIT committish: e5a609e373eae846857f9a6d70a402a3d42b7d94
5
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..
9 @end ignore
10
11 @c \version "2.19.21"
12
13 @c Translators: Reinhold Kainhofer, Till Paala
14 @c Translation checkers: Till Paala
15
16 @node lilypond starten
17 @chapter @command{lilypond} starten
18 @translationof Running lilypond
19
20 Dieses Kapitel behandelt die technischen Details, wie LilyPond ausgeführt werden kann.
21
22
23 @menu
24 * Übliche Programmbenutzung::
25 * Benutzung auf der Kommandozeile::
26 * Fehlermeldungen::
27 * Häufige Fehlermeldungen::
28 @end menu
29
30 @node Übliche Programmbenutzung
31 @section Übliche Programmbenutzung
32 @translationof Normal usage
33
34 Die meisten Benutzer führen LilyPond von einer graphischen Benutzeroberfläche
35 aus. Siehe @rlearning{Tutorium}, falls Sie dies nicht bereits getan haben.  Wenn
36 Sie einen alternativen Editor für Ihre LilyPond-Dateien verwenden, lesen Sie
37 bitte die Dokumentation dieses Editors.
38
39
40 @node Benutzung auf der Kommandozeile
41 @section Benutzung auf der Kommandozeile
42 @translationof Command-line usage
43
44 Dieser Abschnitt enthält zusätzliche Informationen, wie Sie LilyPond
45 von der Kommandozeile ausführen können.  Dies kann erforderlich sein,
46 um etwa zusätzliche Optionen an das Programm zu übergeben.  Außerdem
47 sind einige Zusatzprogramme (wie etwa @code{midi2ly}) nur von der
48 Kommandozeile verfügbar.
49
50 Unter @q{Kommandozeile} verstehen wir die Kommandozeile des jeweiligen
51 Betriebssystems. Windows Benutzern ist sie vielleicht eher unter den
52 englischen Begriffen @q{DOS shell} oder @q{command shell} bekannt.
53 MacOS@tie{}X Benutzer kennen sie eher unter @q{Terminal} oder @q{Konsole}.
54 Einige zusätzliche Einrichtungsarbeiten werden unter MacOS@tie{}X,
55 siehe @rweb{MacOS X}.
56
57 Wie die Kommandozeile im jeweiligen Betriebssystem benutzt werden kann,
58 soll in diesem Handbuch nicht näher beschrieben werden. Sehen Sie bitte
59 im Handbuch Ihres Betriebssystems nach oder informieren Sie sich im
60 Internet, wenn Sie mit der Kommandozeile nicht vertraut sind.
61
62
63 @menu
64 * lilypond aufrufen::
65 * Grundlegende Optionen auf der Kommandozeile für LilyPond::
66 * Fortgeschrittene Optionen auf der Kommandozeile für LilyPond::
67 * Umgebungsvariablen::
68 * LilyPond in chroot-Kerker::
69 @end menu
70
71 @node lilypond aufrufen
72 @unnumberedsubsec @command{lilypond} aufrufen
73 @translationof Invoking lilypond
74
75 @cindex @command{lilypond} aufrufen
76 @cindex Kommandozeilen-Optionen für @command{lilypond}
77 @cindex Optionen an der Kommandozeile
78
79 Das @command{lilypond} Programm kann folgendermaßen von der Kommandozeile
80 aufgerufen werden.
81
82 @example
83 lilypond [@var{Option}]@dots{} @var{Dateiname}@dots{}
84 @end example
85
86
87 Wird ein @file{Dateiname} ohne Erweiterung angegeben, so wird @file{.ly} als
88 Standarderweiterung für LilyPond-Dateien benutzt.  Um Daten von
89 @code{stdin} einzulesen, benutzen Sie einfach einen Bindestrich (@code{-})
90 als @var{Dateiname}.
91
92 Wenn LilyPond die Datei @file{Dateiname.ly} verarbeitet, werden daraus
93 die Dateien @file{Dateiname.ps} und @file{Dateiname.pdf} erzeugt.
94 Es können an @code{lilypond} auch mehrere @file{.ly} Dateien übergeben
95 werden, die dann einzeln und voneinander unabhängig abgearbeitet
96 werden.@footnote{Der Zustand von GUILE wird allerdings nicht nach
97 jeder Datei zurückgesetzt, sodass Achtung geboten ist, wenn in einer
98 Datei globale Änderungen von Scheme aus durchgeführt werden.}
99
100 Falls @file{Dateiname.ly} mehr als eine @code{\book}-Umgebung enthält,
101 werden die weiteren Stücke in durchnummerierte Dateien der Form
102 @file{Dateiname-1.pdf} ausgegeben.  Zusätzlich wird der Wert der
103 Variable @code{output-suffix} zwischen den ursprünglichen Dateinamen
104 und der Zahl eingefügt.  Eine LilyPond-Datei @file{Dateiname.ly} mit dem Inhalt
105
106 @example
107 #(define output-suffix "Geige")
108 \score @{ @dots{} @}
109 #(define output-suffix "Cello")
110 \score @{ @dots{} @}
111 @end example
112
113 @noindent
114 erzeugt daher die Dateien @var{Dateiname}@file{-Geige.pdf} und
115 @var{Dateiname}@file{-Cello-1.pdf}.
116
117
118
119 @unnumberedsubsubsec Häufige Kommandozeilenbefehle
120
121 Wenn Ihre Kommandozeile normale Weiterleitungen unterstützt, können
122 Sie es nützlich finden, mit folgenden Befehlen die Ausgabe der
123 Kommandozeile in eine Datei zu leiten:
124
125 @itemize
126
127 @item
128 @code{lilypond file.ly 1>stdout.log} um normale Ausgabe zu erhalten
129 @item
130 @code{lilypond file.ly 2>stderr.log} um Fehlermeldungen zu erhalten
131
132 @item
133 @code{lilypond file.ly &>all.log} um alle Meldungen zu erhalten
134
135 @end itemize
136
137 Wenden Sie sich an die Dokumentation für Ihre Kommandozeile, um
138 zu sehen, ob derartige Optionen unterstützt werden oder die Syntax
139 unterschiedlich ist.  Beachten Sie, dass es sich hier um
140 reine Verwaltungsprogramme handelt, die nichts mit LilyPond zu tun
141 haben.
142
143
144 @node Grundlegende Optionen auf der Kommandozeile für LilyPond
145 @unnumberedsubsec Grundlegende Optionen auf der Kommandozeile für LilyPond
146 @translationof Basic command line options for LilyPond
147
148 Die folgenden Kommandozeilenoptionen werden von @command{lilypond} unterstützt:
149
150 @cindex @command{lilypond} auf der Kommandozeile
151 @cindex Kommandozeile, @command{lilypond} aufrufen
152 @cindex Optionen, Kommandozeile
153 @cindex Terminal, @command{lilypond} aufrufen
154
155 @table @code
156
157 @item -b, --bigpdfs
158 @cindex bigpdfs
159
160 Mit dieser Option generierte PDF-Dateien sind deutlich größer als normal,
161 weil keine oder nur minimale Zeichensatz-Optimierung erfolgt.  Werden
162 jedoch zwei oder mehr solcher PDF-Dateien in @w{@code{pdftex}-},
163 @w{@code{xetex}-} oder @w{@code{luatex}}-Dokumente eingebunden und
164 anschließend mit ghostscript nachbearbeitet, entstehen deutlich
165 kleinere PDF-Dokumente, da ghostscript die Zeichensatzdaten auf
166 diesem Weg viel besser komprimieren kann.
167
168 Nach
169
170 @example
171 lilypond -b myfile
172 @end example
173
174 @noindent
175 sollte @code{ghostscript} wie folgt ausgeführt werden.
176
177 @example
178 gs -q -sDEVICE=pdfwrite -o gsout.pdf myfile.pdf
179 @end example
180
181 Mit Hilfe von
182 @uref{https://code.google.com/p/pdfsizeopt/,@code{pdfsizeopt.py}}
183 kann die Ausgabedatei noch mehr verkleinert werden.
184
185 @example
186 pdfsizeopt.py --use-multivalent=no gsout.pdf final.pdf
187 @end example
188
189 @item -d, --define-default=@var{Variable}=@var{Wert}
190 Siehe @ref{Fortgeschrittene Optionen auf der Kommandozeile für LilyPond}.
191
192 @cindex Scheme, Auswertung von Ausdrücken
193 @cindex Auswertung von Ausdrücken, Scheme
194
195 @item -e, --evaluate=@var{expr}
196 Wertet den Scheme-Ausdruck @var{expr} aus, bevor die @file{.ly} Dateien
197 gelesen und interpretiert werden.
198 Die @code{-e} Option kann auch mehrfach angegeben werden, die Ausdrücke
199 werden nacheinander ausgewertet.
200
201 Da der Ausdruck im @code{guile-user} Modul ausgewertet wird, ist bei der
202 Definitionen innerhalb von @var{expr} folgendes Vorgehen nötig. An der
203 Kommandozeile wird z.B. @code{a} im @code{guile-user} Modul definiert:
204
205 @example
206 lilypond -e '(define-public a 42)'
207 @end example
208
209 @noindent
210 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:
211
212 @example
213 #(use-modules (guile-user))
214 @end example
215
216 @warning{Windows-Benutzer müssen doppelte anstelle der einfachen
217 Anführungsstriche einsetzen.}
218
219 @cindex Ausgabeformat
220
221 @item -f, --format=@var{Format}
222 Bestimmt das Ausgabeformat. Mögliche Werte von @var{Format} sind
223 @code{svg}, @code{ps}, @code{pdf} und @code{png}.
224
225 Beispiel: @code{lilypond -fpng @var{Dateiname}.ly}
226
227 @item -h, --help
228 Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen.
229
230 @item -H, --header=@var{FELD}
231 Gibt den Inhalt eines Feldes aus dem @code{\header}-Block in die Datei
232 @file{Dateiname.@var{FELD}} aus.
233
234 @item -i, --init=@var{Initialisierungsdatei}
235 Benutzt @var{Initialisierungsdatei} zur gesamten Programminitialisierung. Der
236 Standardwert ist @file{init.ly}.
237
238 @item -I, --include=@var{Verzeichnis}
239 Fügt @var{Verzeichnis} zur Liste der Suchpfade hinzu.
240
241 @cindex Dateisuche
242 @cindex Suchpfad
243
244 Mehrere -I-Optionen können angegeben werden.  Die Suche beginnt mit dem
245 ersten definierten Verzeichnis und setzt in den weiteren Verzeichnissen
246 fort, wenn die gesuchte Datei nicht in dem Verzeichnis gefunden wird.
247
248 @cindex Kerker, Programm ausführen
249 @cindex Jail, Programm ausführen
250
251 @item -j, --jail=@var{Benutzer},@var{Gruppe},@var{Jail-Verzeichnis},@var{Arbeitsverzeichnis}
252 Führt @command{lilypond} in einem chroot-Jail aus.
253
254 Die @option{--jail} Option ist eine flexiblere Alternative zu @option{-dsafe}, wenn
255 LilyPond über das Internet verfügbar gemacht wird oder LilyPond Befehle ausführt,
256 die aus externe Quellen stammen (siehe @ref{Fortgeschrittene Optionen auf der Kommandozeile für LilyPond}).
257
258 Sie funktioniert dergestalt, dass das Wurzelverzeichnis von
259 @command{lilypond} auf @var{Jail-Verzeichnis} gesetzt wird, bevor die
260 tatsächliche Kompilierung der @file{.ly}-Datei beginnt. Der Benutzer und die Gruppe
261 werden auf die angegebenen Werte gesetzt und das aktuelle Arbeitsverzeichnis
262 wird ebenfalls auf den angegebenen Wert @var{Arbeitsverzeichnis} gesetzt.
263 Diese Einstellungen garantieren (zumindest in der Theorie), dass es nicht
264 möglich ist, aus dem Jail auszubrechen. Damit @option{--jail} funktioniert, muss
265 @command{lilypond} allerdings als root ausgeführt werden, was normalerweise
266 auf sichere Art mit dem Kommando @command{sudo} erreicht werden kann.
267
268 Das Jail-Verzeichnis zu erstellen ist etwas heikel, da LilyPond alle zur
269 Ausführung nötigen Bibliotheken und Dateien @emph{innerhalb des
270 Jail-Verzeichnisses} finden muss. Ein typisches Setup besteht aus folgenden
271 Punkten:
272
273 @table @asis
274
275 @item Erstellung eines getrennten Dateisystems
276 Ein eigenes Dateisystem muss für LilyPond erstellt werden, sodass es mit
277 sicheren Einstellungen wie @code{noexec}, @code{nodev} und @code{nosuid}
278 eingebunden werden kann. Damit ist es unmöglich, Programme von diesem
279 Dateisystem auszuführen oder direkt auf eine Hardware-Schnittstelle
280 zuzugreifen. Wenn Sie keine eigene Partition erstellen möchten, können Sie
281 auch eine Datei der entsprechenden Größe erstellen und sie als @q{loop}-Gerät
282 einbinden. Ein getrenntes Dateisystem garantiert auch, dass LilyPond nicht
283 mehr Festplattenspeicher benutzt als erlaubt.
284
285 @item Erstellung eines eigenen Benutzerkontos
286 Es sollte ein eigener Benutzer und eine eigene Gruppe (z. B.
287 @code{lily}/@code{lily}) mit geringen Rechten für die Ausführung von LilyPond
288 innerhalb des Jails benutzt werden. Nur ein einziges Verzeichnis des Jails sollte
289 für den Benutzer schreibbar sein und als @var{Arbeitsverzeichnis} an
290 @code{lilypond} übergeben werden.
291
292 @item Einrichtung des Jails
293 LilyPond muss zahlreiche Dateien für die Ausführung einlesen. All diese
294 Dateien müssen in das Jail-Verzeichnis kopiert werden (mit denselben Pfaden
295 wie im tatsächlichen Wurzel-Dateisystem). Die gesamte LilyPond-Installation
296 (typischerweise @file{/usr/share/lilypond}) sollte kopiert werden.
297
298 Falls Probleme auftreten, ist es am einfachsten, LilyPond mittels
299 @command{strace} zu starten, wodurch Sie relativ leicht feststellen können,
300 welche Dateien im Jail noch fehlen.
301
302 @item Ausführung von LilyPond
303 In einem mit @code{noexec} eingebundenen Jail ist es nicht möglich, externe
304 Programme auszuführen. Daher muss LilyPond auf eine Art gestartet werden,
305 die keine weitere Ausführung von Programmen benötigt. Wie bereits erwähnt
306 muss LilyPond mit Administrator-Rechten gestartet werden (die es allerdings
307 sofort wieder abgibt), beispielsweise mittels @command{sudo}. Außerdem
308 ist es eine gute Idee, die LilyPond zur Verfügung stehende CPU-Zeit zu
309 limitieren (z. B. mit @command{ulimit -t}) und -- falls das Betriebssystem
310 dies unterstützt -- auch den zur Verfügung stehenden Hauptspeicher.  Siehe
311 auch @ref{LilyPond in chroot-Kerker}
312
313 @end table
314
315 @cindex Logstufe
316 @cindex Ausgabe, Ausführlichkeit
317
318 @item -l, --loglevel=@var{Logstufe}
319 Passt die Ausführlichkeit der Ausgabe auf der Kommandozeile entsprechend
320 @var{Logstufe} an.  Mögliche Werte sind:
321
322 @table @code
323
324 @item NONE
325 Keine Ausgabe, nicht einmal Fehlermeldungen.
326
327 @item ERROR
328 Nur Fehlermeldungen, keine Warnungen oder Fortschrittsmeldungen.
329
330 @item WARN
331 Warnungen und Fehlermeldungen, keine Fortschrittsmeldungen.
332
333 @item BASIC_PROGRESS
334 Grundlegende Fortschrittsmeldungen (Erfolg), Warnungen und Fehler.
335
336 @item PROGRESS
337 Alle Fortschrittsmeldungen, Warnungen und Fehler.
338
339 @item INFO (Standard)
340 Fortschrittmeldungen, Warnungen, Fehlermeldungen und weiter
341 Information über die Ausführung.
342
343 @item DEBUG
344 Alle möglichen Meldungen, die auch mit der Fehlersuche (Debug) zu tun
345 haben können.
346
347 @end table
348
349
350 @cindex Verzeichnis, Ausgabe speichern in
351 @cindex Ausgabedateiname
352 @cindex Dateiname der Ausgabe bestimmen
353
354 @item -o, --output=@var{DATEI} oder @var{ORDNER}
355 Schreibt das Ergebnis der Verarbeitung mit LilyPond in die Ausgabedatei
356 @var{DATEI}.  Wenn ein Verzeichnis mit dem Namen existiert, werden die Ausgabedateien
357 in dieses Verzeichnis gespeichert, wobei der Dateiname der Eingabedatei
358 benutzt wird.  Die entsprechende Dateinamenserweiterung wird angehängt (z.B.
359 @code{.pdf} für pdf).
360
361 @cindex PostScript-Ausgabe
362
363 @item --ps
364 Erzeugt PostScript.
365
366 @cindex PNG-Ausgabe
367 @cindex Portable Network Graphics (PNG)
368
369 @item --png
370 Erzeugt eine Grafik-Datei im PNG-Format von jeder Seite. Diese Option
371 impliziert auch @code{--ps}. Die Auflösung in DPI der Grafik kann festgelegt
372 werden durch
373 @example
374 -dresolution=110
375 @end example
376
377 @cindex PDF-Ausgabe
378 @cindex Portable Document Format (PDF)
379
380 @item --pdf
381 Erzeugt PDF-Dateien. Dies impliziert @code{--ps}.
382
383 @item -v, --version
384 Gibt die Versionsnummer aus.
385
386 @item -V, --verbose
387 Gibt ausführliche informative Meldungen aus: Zeigt die vollen Dateipfade
388 aller gelesenen Dateien sowie Informationen über die Laufzeit.
389
390 @item -w, --warranty
391 Zeigt die Garantiebedingungen an, unter denen GNU LilyPond steht. (Es besteht
392 @strong{KEINERLEI GARANTIE}!)
393
394 @end table
395
396
397
398 @node Fortgeschrittene Optionen auf der Kommandozeile für LilyPond
399 @unnumberedsubsec Fortgeschrittene Optionen auf der Kommandozeile für LilyPond
400 @translationof Advanced command line options for LilyPond
401
402 @table @code
403
404 @item -d@var{[Optionsbezeichnung]}=@var{[Wert]},--define-default=@var{[Optionsbezeichnung]}=@var{[Wert]}
405 Hiermit wird die entsprechende interne Scheme-Funktion auf den @var{Wert}
406 gesetzt.  Wenn kein @var{value} angegeben wird, wird der Standardwert
407 eingesetzt.  Die Vorsilbe @code{no-} kann zur @var{Optionsbezeichnung}
408 hinzugefügt werden, um eine Funktion @qq{auszuschalten}.  Beispielsweise
409
410 @cindex Point and Click, Kommandozeile
411
412 @example
413 -dpoint-and-click=#f
414 @end example
415
416 @noindent
417 ist das gleiche wie
418 @example
419 -dno-point-and-click
420 @end example
421 @end table
422
423 @noindent Folgende Optionen sind mit ihren entsprechenden Standardwerten
424 unterstützt:
425
426 @multitable @columnfractions .33 .16 .51
427 @item @strong{Symbol}
428 @tab @strong{Wert}
429 @tab @strong{Erklärung/Optionen}
430
431 @item @code{anti-alias-factor}
432 @tab @code{1}
433 @tab Die Bilder in einer höheren Auflösung rendern (Faktor angegeben) und
434 das Resultat herunterrechnen, um @qq{Zacken} in @code{PNG}-Bildern zu
435 vermeiden.
436
437 @item @code{aux-files}
438 @tab @code{#t}
439 @tab Erstelle @code{.tex}, @code{.texi}, @code{.count}-Dateien im
440 @code{EPS}-Backend.
441
442 @item @code{backend}
443 @tab @code{'ps}
444 @tab Auswahl des Backend.  Poststscript-Dateien (Standart) enthalten
445 @code{TTF}, @code{Type1} und @code{OTF}-Schriftarten.  Ihr Zeichenvorrat
446 wird nicht reduziert (Subsetting).  Die Benutzung von östlichen
447 Schriftarten kann zu sehr großen Dateien führen.
448
449 @item
450 @tab @code{'eps}
451 @tab Encapsulated PostScript.  Hiermit wird jede Seite (System) als eine
452 eigene @file{EPS}-Datei gespeichert, ohne Schriftarten, sowie als eine
453 kombinierte @file{EPS}-Datei mit allen Seiten (Systemen) inclusive
454 Schriftarten.  Wird als Standard von @command{lilypond-book} benützt.
455
456 @item
457 @tab @code{'null}
458 @tab Keine graphische Partitur ausgeben; hat den gleichen Effekt wie
459 @code{-dno-print-pages}.
460
461 @item
462 @tab @code{'svg}
463 @tab Scalable Vector Graphics.  Hiermit wird eine einzelne @code{SVG}-Datei
464 für jede Seite der Ausgabe erstellt, ohne Schriftarten.  Es wird
465 empfohlen, die Century Schoolbook-Schriftarten zu installieren, welche
466 mit der LilyPond-Installation mitkommen, um optimales Rendern zu erreichen.
467 Unter UNIX kann man einfach die Schriftartdateien aus dem LilyPond-Verzeichnis
468 (üblicherweise @file{/usr/share/lilypond/VERSION/fonts/otf/}) nach
469 @file{~/.fonts/}.  Die @code{SVG}-Ausgabe sollte mit allen SVG-Programmen
470 oder -Editoren kompatibel sein.  Es gibt auch die Option @code{svg-woff}
471 (siehe unten) um woff-Schriftarten im SVG-Backend zu benützen.
472
473 @item
474 @tab @code{'scm}
475 @tab Ausgabe der rohen internen Scheme-basierten Zeichnungsbefehle.
476
477 @item @code{check-internal-types}
478 @tab @code{#f}
479 @tab Überprüfe jede Eigenschaftszuweisung für Typen.
480
481 @item @code{clip-systems}
482 @tab @code{#f}
483 @tab Erstelle ausgeschnittene Schnipsel einer Partitur.
484
485 @item @code{datadir}
486 @tab
487 @tab Präfix für Datendateien (read-only).
488
489 @item @code{debug-gc}
490 @tab @code{#f}
491 @tab Gebe Debugging-Statistik für Speicher aus.
492
493 @item @code{debug-gc-assert-parsed-dead}
494 @tab @code{#f}
495 @tab Für Speicher-Debugging: Gehe sicher, dass alle Referenzen zu geparsten
496 Objekten tot sind.  Das ist eine interne Option und sie wird automatisch
497 für @code{`-ddebug-gc'} angestellt.
498
499 @item @code{debug-lexer}
500 @tab @code{#f}
501 @tab Debugging des Flex-lexer.
502
503 @item @code{debug-page-breaking-scoring}
504 @tab @code{#f}
505 @tab Gebe viele unterschiedliche Seitenumbruchsituationen für Partituren
506 aus.
507
508 @item @code{debug-parser}
509 @tab @code{#f}
510 @tab Debugging des Bison-Parsers.
511
512 @item @code{debug-property-callbacks}
513 @tab @code{#f}
514 @tab Debugging von zyklischen Callback-Ketten.
515
516 @item @code{debug-skylines}
517 @tab @code{#f}
518 @tab Debugging von Skylines.
519
520 @item @code{delete-intermediate-files}
521 @tab @code{#t}
522 @tab Entferne unbenutzbare, zwischenzeitliche @code{.ps}-Dateien, die während
523 der Kompilations erstellt werden.
524
525 @item @code{dump-cpu-profile}
526 @tab @code{#f}
527 @tab Gebe CPU-Zeitinformation aus (abhängig vom System).
528
529 @item @code{dump-profile}
530 @tab @code{#f}
531 @tab Gebe Speicher- und CPU-Zeitbenutzung für jede Datei aus.
532
533 @item @code{dump-signatures}
534 @tab @code{#f}
535 @tab Gebe Ausgabesignaturen für jedes System aus.  Wird für das Prüfen
536 der Regressionsteste eingesetzt.
537
538 @item @code{eps-box-padding}
539 @tab @code{#f}
540 @tab Verschiebe die linke Ecke der ausgegebenen EPS-Boundingbox um die
541 angegebene Entfernung (in mm).
542
543 @item @code{gs-load-fonts}
544 @tab @code{#f}
545 @tab Lade die Schriftarten durch Ghostscript.
546
547 @item @code{gs-load-lily-fonts}
548 @tab @code{#f}
549 @tab Lade nur die LilyPond-Schriftarten durch Ghostscript.
550
551 @item @code{gui}
552 @tab @code{#f}
553 @tab Gibt keine Ausgabe auf der Kommandozeile aus, sondern schreibt alles in
554 die Log-Datei.
555 @end multitable
556
557 @noindent
558 @strong{Anmerkung für Windows-Benutzer:} Standardmäßig gibt @code{lilypond.exe} alle Fortschrittsinformation auf der Kommandozeile aus;
559 @code{lilypond-windows.exe} gibt aber keine Fortschrittinformation aus und
560 zeigt sofort den Prompt an.  Die Option @option{-dgui} kann hier benutzt
561 werden, um die Ausgabe in eine Log-Datei umzuleiten.
562
563 @multitable @columnfractions .33 .16 .51
564 @item @code{help}
565 @tab @code{#f}
566 @tab Zeige die Hilfe.
567
568 @item @code{include-book-title-preview}
569 @tab @code{#t}
570 @tab Füge Titel eines Buches (book) in die Vorschaubilder ein.
571
572 @item @code{include-eps-fonts}
573 @tab @code{#t}
574 @tab Füge Schriftarten in EPS-Dateien von einzelnen Systemen ein.
575
576 @item @code{include-settings}
577 @tab @code{#f}
578 @tab Füge eine Datei für globale Einstellungen ein, dieses wird gelesen, bevor die Partitur verarbeitet wird.
579
580 @item @code{job-count}
581 @tab @code{#f}
582 @tab Bearbeite Dateien parallel, mit der angegebenen Anzahl von Prozessen.
583
584 @item @code{log-file}
585 @tab @code{#f [file]}
586 @tab Wenn die Zeichenkette @code{FOO} als ein zweites Argument angegeben wird,
587 wird die Ausgabe in die Log-Datei @code{FOO.log} umgeleitet.
588
589 @item @code{max-markup-depth}
590 @tab @code{1024}
591 @tab Maximale Tiefe eines Beschriftungs-(markup)-Baumes.  Wenn eine
592 Beschriftung mehr Ebenen hat, wird angenommen, dass die Beschriftung
593 nicht von sich aus schließt, eine Warnung ausgegeben und eine leere
594 Beschriftung gesetzt.
595
596 @item @code{midi-extension}
597 @tab @code{"midi"}
598 @tab Schreibe als Standarddateierweiterung für MIDI die angegebene Zeichenkette.
599
600 @item @code{music-strings-to-paths}
601 @tab @code{#f}
602 @tab Konvertiere Textzeichenketten in Pfade, wenn die Glyphen einer
603 Musik-Schriftart gehören.
604
605 @item @code{old-relative}
606 @tab @code{#f}
607 @tab Lässt den @code{\relative}-Modus für simultane Musik ähnlich wie die
608 Akkord-Syntax funktionieren.
609
610 @item @code{paper-size}
611 @tab @code{\"a4\"}
612 @tab Stelle die Standardpapiergröße ein.  Beachten Sie, dass die Zeichenkette
613 von doppelten Anführungszeichen mit Backslash umgeben werden muss.
614
615 @item @code{pixmap-format}
616 @tab @code{png16m}
617 @tab Stellt das Ausgabeformat von GhostScript für Pixel-Bilder ein.
618
619 @item @code{point-and-click}
620 @tab @code{#f}
621 @tab Füge @q{point & click}-Links in die @code{PDF}-Ausgabedatei ein.  Siehe auch
622 @ref{Point and click}.
623
624 @item @code{preview}
625 @tab @code{#f}
626 @tab Erstelle Vorschaubilder zusätzlich zur normalen Ausgabe.
627 @end multitable
628
629 @noindent
630 Diese Option wird von allen Backends unterstützt: @code{pdf}, @code{png},
631 @code{ps}, @code{eps} und @code{svg}, allerdings nicht @code{scm}.  Hiermit
632 wird eine Ausgabedatei in der Form @code{meineDatei.preview.Dateierweiterung}
633 erstellt, die die Titel und das erste Notensystem enthält.  Wenn @code{\book}-
634 oder @code{\bookpart}-Umgebungen inegesetzt werden, werden die Titel von
635 @code{\book}, @code{\bookpart} oder @code{\score} in die Ausgabe aufgenommen,
636 sowie das erste System jeder @code{\score}-Umgebung, wenn die
637 Variable @code{print-all-headers} in der @code{paper}-Umgebung auf @code{#t}
638 eingesetllt ist.
639
640 Um die normale Ausgabe zu unterdrücken, können die Optionen @option{-dprint-pages}
641 oder @option{-dno-print-pages} eingesetzt werden.
642
643 @multitable @columnfractions .33 .16 .51
644 @item @code{print-pages}
645 @tab @code{#t}
646 @tab Erstelle vollständige Seiten, der Standard.  @option{-dno-print-pages} ist
647 hilfreich im Zusammenhang mit @option{-dpreview}.
648
649 @item @code{profile-property-accesses}
650 @tab @code{#f}
651 @tab Speichere Statistiken von @code{get_property()}-Funktionsaufrufen.
652
653 @item @code{protected-scheme-parsing}
654 @tab @code{#t}
655 @tab Fahre fort, wenn Fehler in eingefügtem Scheme-Code im Parser bemerkt
656 werden.  Wenn auf @code{#f} gesetzt, halte an Fehlern an und gebe einen
657 Stacktrace aus.
658
659 @item @code{read-file-list}
660 @tab @code{#f [file]}
661 @tab Gibt den Dateinamen einer Datei an, die eine Liste mit Eingabedateien
662 enthält, die kompiliert werden sollen.
663
664 @item @code{relative-includes}
665 @tab @code{#f}
666 @tab Wenn ein @code{\include}-Befehl bearbeitet wird, suche nach der
667 eingefügten Datei relativ zur aktuellen Datei (und nicht relativ zur untersten
668 Ebene).
669
670 @item @code{resolution}
671 @tab @code{101}
672 @tab Setzt die Auflösung, mit der @code{PNG}-Bilder erstellt werde, auf einen
673 bestimmten Wert (in dpi).
674
675 @item @code{safe}
676 @tab @code{#f}
677 @tab Der @code{.ly}-Eingabe nicht trauen.
678 @end multitable
679
680 @noindent
681 Wenn LilyPond-Notensatz über einen Webserver zur Verfügung gestellt wird,
682 @b{müssen} entweder die Option @option{--safe} oder die Option @option{--jail}
683 mitgegeben werden.  Die Option @option{--safe} verhindert eingefügten
684 Scheme-Code daran, Schaden auszuüben, etwa
685
686 @quotation
687 @verbatim
688 #(system "rm -rf /")
689 {
690   c4^$(ly:gulp-file "/etc/passwd")
691 }
692 @end verbatim
693 @end quotation
694
695 Die Option @option{-dsafe} interpretiert eingefügte Scheme-Ausdrücke
696 in einem besonderen sicheren Modul.  Das ist aus dem GUILE
697 @file{safe-r5rs}-Modul abgeleitet, fügt aber einige Funktionen der
698 LilyPond API hinzu, welche sich in @file{scm/safe-lily.scm} aufgelistet finden.
699
700 Zusätzliche verbietet der sichere Modus @code{\include}-Befehle und
701 stellt die Benutzung von Backslash in @TeX{}-Zeichenketten aus.  Im sicheren
702 Modus ist es auch
703 nicht möglich, LilyPond-Variablen in Scheme zu importieren.
704
705 @option{-dsafe} kann jedoch @emph{nicht} Überbenutzung von Resourcen
706 entdecken, sodass man trotzdem das Programm abschießen kann, etwa
707 indem man eine sich wiederholende Datenstruktur in das Backend
708 leitet.  Darum sollte LilyPond sowohl in der CPU- als auch Speicherbenutzung
709 eingeschränkt betrieben werden, wenn es über einen Webserver öffentlich zugänglich
710 gemacht wird.
711
712 Der sichere Modus verhindert die Kompilierung von vielen nützlichen
713 LilyPond-Schnipseln.
714
715 die Option @option{--jail} ist noch sicherer, erfordert aber mehr Arbeit
716 beim Setup.  Siehe auch @ref{Grundlegende Optionen auf der Kommandozeile für LilyPond}.
717
718 @multitable @columnfractions .33 .16 .51
719 @item @code{separate-log-files}
720 @tab @code{#f}
721 @tab Für Eingabedateien @code{Datei1.ly}, @code{Datei2.ly} usw. die
722 Log-Daten in die Dateien @code{Datei1.log}, @code{Datei2.log} ... schreiben.
723
724 @item @code{show-available-fonts}
725 @tab @code{#f}
726 @tab Eine Liste der verfügbaren Schriftarten.
727
728 @item @code{strict-infinity-checking}
729 @tab @code{#f}
730 @tab Erzwinge einen Programmabsturz wenn @code{Inf} und @code{NaN}
731 Fließkommaausnahmen gefunden werden.
732
733 @item @code{strip-output-dir}
734 @tab @code{#t}
735 @tab Verzeichnisse von Eingabedateien nicht in die Konstruktion der
736 Ausgabedateinamen einbeziehen.
737
738 @item @code{svg-woff}
739 @tab @code{#f}
740 @tab Woff-Schriftarten im SVG-Backend benuützen..
741
742 @item @code{trace-memory-frequency}
743 @tab @code{#f}
744 @tab Zeichnet die Benutzung von Scheme so oft pro Sekunde auf.  Das Resultat
745 wird in die Dateien @code{FILE.stacks} und @code{FILE.graph} ausgegeben.
746
747 @item @code{trace-scheme-coverage}
748 @tab @code{#f}
749 @tab Abdeckung der Scheme-Dateien in Datei @code{FILE.cov} schreiben.
750
751 @item @code{verbose}
752 @tab @code{#f}
753 @tab Ausfühliche Ausgabe, also Logstufe DEBUG (read-only).
754
755 @item @code{warning-as-error}
756 @tab @code{#f}
757 @tab Alle Warnungen und @q{Programmierfehler}-Nachrichten in Fehler ändern.
758 @end multitable
759
760
761
762 @node Umgebungsvariablen
763 @unnumberedsubsec Umgebungsvariablen
764 @translationof Environment variables
765
766 @cindex LANG
767 @cindex LILYPOND_LOGLEVEL
768 @cindex LILYPOND_DATADIR
769 @cindex Variablen, Umgebungs-
770 @cindex Umgebungsvariablen
771
772 @command{lilypond} erkennt und benützt die folgenden Umgebungsvariablen:
773 @table @code
774 @item LILYPOND_DATADIR
775 Diese Variable gibt das Verzeichnis an, wo LilyPond seine eigenen Dateien,
776 Meldungen und Übersetzungen finden kann.  Dieses Verzeichnis sollte
777 Unterverzeichnisse @file{ly/}, @file{ps/}, @file{tex/}, etc. beinhalten.
778
779 @item LANG
780 Gibt die Sprache an, in der Warnungen und Fehlermeldungen ausgegeben werden.
781
782 @item LILYPOND_LOGLEVEL
783 Die standardmäßige Logstufe.  Wenn LilyPond ohne eine explizite
784 Logstufe aufterufen wird (d. h. die Kommandozeilenoption @option{--loglevel}
785 nicht eingesetzt wird), wird dieser Wert benutzt.
786
787 @item LILYPOND_GC_YIELD
788 Eine Variable (von 1 bis 100), die die Speicherverwaltung regelt.  Bei
789 niedrigeren Werten wird mehr Prozessor-Zeit, dafür weniger Hauptspeicher
790 benötigt.  Voreinstellung ist ein Wert von @code{70}.
791
792 @end table
793
794
795
796 @node LilyPond in chroot-Kerker
797 @unnumberedsubsec LilyPond in chroot-Kerker
798 @translationof LilyPond in chroot jail
799
800 Einen Server einzurichten, der LilyPond in einem chroot-Kerker bedient, ist
801 recht kompliziert.  Die einzelnen Schritten finden sich unten aufgeliestet.
802 Beispiele sind für Ubuntu GNU/Linux und erfordern evtl. die Benutzung von
803 @code{sudo} an den entsprechenden Stellen.
804
805 @itemize
806
807 @item Installieren Sie die nötigen Pakete: LilyPond, GhostScript und ImageMagick.
808
809 @item Erstellen Sie einen neuen Benutzer mit dem Namen @code{lily}:
810
811 @example
812 adduser lily
813 @end example
814
815 @noindent
816 Hierdurch wird auch eine Gruppe @code{lily} und ein Heimat-Ordner
817 @code{/home/lily} für den neuen Benutzer erstellt.
818
819 @item Im Heimat-Ordner des Benutzers @code{lily} erstellen Sie eine Datei, die als
820 eigenes Dateisystem eingesetzt wird:
821
822 @example
823 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
824 @end example
825
826 @noindent
827 In diesem Beispiel wird eine 200-MB-Datei als Kerker-Dateisystem erstellt.
828
829 @item Erstellen Sie ein loop device, erstellen Sie ein Dateisystem und
830 mounten Sie es, dann erstellen Sie dort einen Ordner, in dem der Benutzer
831 @code{lily} Schreibrechte hat:
832
833 @example
834 mkdir /mnt/lilyloop
835 losetup /dev/loop0 /home/lily/loopfile
836 mkfs -t ext3 /dev/loop0 200000
837 mount -t ext3 /dev/loop0 /mnt/lilyloop
838 mkdir /mnt/lilyloop/lilyhome
839 chown lily /mnt/lilyloop/lilyhome
840 @end example
841
842 @item In der Konfiguration des Servers ist der Kerker (JAIL) @code{/mnt/lilyloop}
843 und das Verzeichnis (DIR) @code{/lilyhome}.
844
845 @item Erstellen Sie einen großen Verzeichnisbaum in dem Kerker, indem Sie die
846 notwendigen Dateien dorthin kopiert, wie das Beispielskript unten zeigt.
847
848 Sie könne @code{sed} benutzen, um die notwendigen Kopierbefehle für ein
849 bestimmtes Programm zu erstellen:
850
851 @example
852 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/;  \
853   do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\&  \
854     cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p  \
855       \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
856 @end example
857
858 @end itemize
859
860 @subheading Beispiel-Skript für 32-bit Ubuntu 8.04
861
862 @example
863 #!/bin/sh
864 ## defaults set here
865
866 username=lily
867 home=/home
868 loopdevice=/dev/loop0
869 jaildir=/mnt/lilyloop
870 # the prefix (without the leading slash!)
871 lilyprefix=usr/local
872 # the directory where lilypond is installed on the system
873 lilydir=/$lilyprefix/lilypond/
874
875 userhome=$home/$username
876 loopfile=$userhome/loopfile
877 adduser $username
878 dd if=/dev/zero of=$loopfile bs=1k count=200000
879 mkdir $jaildir
880 losetup $loopdevice $loopfile
881 mkfs -t ext3 $loopdevice 200000
882 mount -t ext3 $loopdevice $jaildir
883 mkdir $jaildir/lilyhome
884 chown $username $jaildir/lilyhome
885 cd $jaildir
886
887 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
888 chmod a+w tmp
889
890 cp -r -L $lilydir $lilyprefix
891 cp -L /bin/sh /bin/rm bin
892 cp -L /usr/bin/convert /usr/bin/gs usr/bin
893 cp -L /usr/share/fonts/truetype usr/share/fonts
894
895 # Now the library copying magic
896 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh"  \
897   "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=>  \
898     \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed  \
899       's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/'  \
900         | sed '/.*=>.*/d'; done | sh -s
901
902 # The shared files for ghostscript...
903       cp -L -r /usr/share/ghostscript usr/share
904 # The shared files for ImageMagick
905       cp -L -r /usr/lib/ImageMagick* usr/lib
906
907 ### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
908 ### you should be able to run:
909 ### Note that /$lilyprefix/bin/lilypond is a script, which sets the
910 ### LD_LIBRARY_PATH - this is crucial
911       /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
912 @end example
913
914
915 @node Fehlermeldungen
916 @section Fehlermeldungen
917 @translationof Error messages
918
919 @cindex error messages
920 @cindex Fehlermeldungen
921
922 Während der Verarbeitung einer Dateien können diverse Meldungen an der
923 Kommandozeile auftreten:
924
925 @table @emph
926
927 @item Warnung (Warning)
928 @cindex Warnung
929 Irgendetwas ist verdächtig.  Wenn Sie etwas Ungewöhnliches in Ihrer
930 Datei durchführen, dann werden Sie die Meldung verstehen und können
931 sie gegebenenfalls ignorieren.  Im Normalfall jedoch bedeutet eine
932 Warnung, dass mit Ihrer Datei etwas nicht stimmt, LilyPond jedoch
933 trotzdem versucht, die Datei soweit wie möglich korrekt zu übersetzen.
934
935 @item Fehler (Error)
936 @cindex Fehler
937 Irgendetwas stimmt definitiv nicht.  Der aktuelle Bearbeitungsschritt
938 (Einlesen, Interpretieren oder Formatieren der Datei) wird noch fertig
939 ausgeführt, danach bricht die Bearbeitung aber ab.
940
941 @item Fataler Fehler (Fatal error)
942 @cindex Fataler Fehler
943 Irgendetwas stimmt definitiv nicht und LilyPond kann nicht weiter
944 ausgeführt werden.  Dies ist nur sehr selten der Fall, meist sind
945 die Schriftarten nicht korrekt installiert.
946
947 @item Scheme Fehler (Scheme error)
948 @cindex Fehlerprotokoll, Scheme
949 @cindex Scheme Fehler
950 Fehler, die während der Ausführung von Scheme-Code auftreten, werden
951 vom Scheme-Interpreter aufgefangen und an der Kommandozeile ausgegeben.
952 Wenn Sie LilyPond mit der @option{--verbose} Option (auch @code{-V})
953 ausführen, wird der sogenannte @q{Call trace} ausgegeben, der die
954 aufgerufenen Funktionen zur Zeit des Fehlers angibt.
955
956 @item Programmierfehler (Programming error)
957 @cindex Programmierfehler
958 Eine interne Inkonsistenz ist aufgetreten.  Diese Fehlermeldungen
959 sollen den Programmierern die Fehlersuche erleichtern und
960 können meistens einfach ignoriert werden.  In manchen Fällen werden
961 so viele Meldungen ausgegeben, dass die Lesbarkeit der restliche
962 Ausgabe davon beeinträchtigt wird.
963
964 @item Abgebrochen (core dumped)
965 Dies bezeichnet einen ernsten Programmierfehler, der das Programm
966 zum Absturz gebracht hat.  Solche Fehler werden als kritisch angesehen.
967 Falls daher einer auftritt, senden Sie bitte einen Bug-Report!
968
969 @end table
970
971 @cindex Fehlermeldung, Format
972 @cindex Form der Fehlermeldungen
973 Wenn Warnungen oder Fehlermeldungen mit einer konkreten Stelle in der
974 Eingabedatei verknüpft werden können, dann hat die Meldung die folgende
975 Form:
976
977 @example
978 @var{Dateiname}:@var{Zeile}:@var{Spalte}: @var{Meldung}
979 @var{Fehlerhafte Eingabezeile}
980 @end example
981
982 Ein Zeilenumbruch wird in der fehlerhaften Zeile an jener Stelle eingefügt,
983 wo der Fehler aufgetreten ist.  Zum Beispiel
984
985 @example
986 test.ly:2:19: Fehler: keine gültige Dauer: 5
987   @{ c'4 e'
988              5 g' @}
989 @end example
990
991 Diese Stellen sind LilyPonds Vermutung, wo die Warnung oder der Fehler
992 aufgetreten ist, allerdings treten Warnungen und Fehler ja gerade in
993 unerwarteten Fällen auf.  Manchmal kann LilyPond auch eine fehlerhafte
994 Stelle zwar noch problemlos verarbeiten, ein paar Zeilen später wirkt
995 sich der Fehler aber dann doch noch aus.  In solchen Fällen, wo Sie in
996 der angegebenen Zeile keinen Fehler erkennen, sollten Sie auch die Zeilen
997 oberhalb der angegebenen Stelle genauer unter die Lupe nehmen.
998
999 Mehr Information darüber findet sich in @ref{Häufige Fehlermeldungen}.
1000
1001
1002
1003 @node Häufige Fehlermeldungen
1004 @section Häufige Fehlermeldungen
1005 @translationof Common errors
1006
1007 Die Fehlermeldungen, die unten beschrieben werden, treten of auf,
1008 es ist jedoch nicht immer einfach, die Urache zu finden.  Wenn
1009 der Fehler einmal verstanden ist, kann er einfach behoben werden.
1010
1011
1012 @menu
1013 * Noten laufen aus der Seite heraus::
1014 * Ein zusätzliches System erscheint::
1015 * Offensichtlicher Fehler in ../ly/init.ly::
1016 * Fehlermeldung Ungebundene Variable %::
1017 * Fehlermeldung FT_Get_Glyph_Name::
1018 * Warnung über absteigende staff affinities::
1019 @end menu
1020
1021 @node Noten laufen aus der Seite heraus
1022 @unnumberedsubsec Noten laufen aus der Seite heraus
1023 @translationof Music runs off the page
1024
1025 Noten, die rechts aus der Seite herauslaufen oder sehr komprimiert
1026 aussehen, liegen in fast allen Fällen an einer falschen Notendauer
1027 einer Note, die dazu fürt, dass die letzte Note im Takt über die
1028 Taktgrenze hinwegdauert.  Es ist nicht falsch, wenn die letzte
1029 Note eines Taktes über den Takt hinausdauert, weil einfach angenommen
1030 wird, dass sie im nächsten Takt fortgesetzt wird.  Aber wenn eine
1031 längere Sequenz dieser überhängenden Noten auftritt, können die
1032 Noten sehr gedrängt aussehen oder über den Seitenrand fließen, weil
1033 die automatische Zeilenumbruchsfunktion einen Umbruch nur am Ende
1034 eines vollständigen Taktes einfügen kann, also wenn alle Noten
1035 zum Ende des Taktstriches auch wirklich aufhören.
1036
1037 @warning{Eine falsche Dauer kann dazu führen, dass Zeilenumbrüche
1038 nicht möglich sein und die Zeile entweder sehr gedrängt dargestllt
1039 wird oder über den Seitenrand fließt.}
1040
1041 Die falsche Dauer kann einfach gefunden werden, wenn Taktstrichüberprüfung
1042 eingesetzt wird, siehe @ruser{Takt- und Taktzahlüberprüfung}.
1043
1044 If you actually intend to have a series of such carry-over measures
1045 you will need to insert an invisible bar line where you want the
1046 line to break.  For details, see @ruser{Taktstriche}.
1047
1048
1049 @node Ein zusätzliches System erscheint
1050 @unnumberedsubsec Ein zusätzliches System erscheint
1051 @translationof An extra staff appears
1052
1053 Wenn Kontext nicht explizit mit @code{\new} oder
1054 @code{\context} erstellt werden, werden sie vom Programm erstellt,
1055 sobald ein Befehl angetroffen wird, der im aktuellen Kontext nicht
1056 funktioniert.  In einfachen Partituren ist diese automatische
1057 Erstellung sehr nützlich und die meisten Beispiele der LilyPond-Handbücher
1058 benutzen diese Schreiberleicherterung.  Manchmal jedoch kann es
1059 vorkommen, dass durch die automatische Erstellung von Systemen aufeinmal
1060 unerwartete Notensysteme erstellt werden.  Beispielsweise könnte man
1061 annehmen, dass folgendes Beispiel alle Notenköpfe in dem Notensystem
1062 rot macht, aber als Resultat hat man zwei Systeme, während die
1063 Notenköpfe immernoch schwarz im unteren System erscheinen.
1064
1065 @lilypond[quote,verbatim,fragment]
1066 \override Staff.NoteHead.color = #red
1067 \new Staff { a' }
1068 @end lilypond
1069
1070 Das liegt daran, dass kein @code{Staff}-Kontext existiert, wenn
1071 der @code{\override}-Befehl verarbeitet wird, sodass ein System
1072 für diesen Befehl erstellt wird.  Dann aber erstellt @code{\new Staff}
1073 noch ein zusätzliches System, wo die Noten gesetzt werden.  Die
1074 richtige Schreibweise wäre:
1075
1076 @lilypond[quote,verbatim]
1077 \new Staff {
1078   \override Staff.NoteHead.color = #red
1079   a'
1080 }
1081 @end lilypond
1082
1083 Ein zweites Beispiel zeigt, dass ein @code{\relative}-Befehl innerhalb
1084 von @code{\repeat} zwei Systeme erstellt, wobei der zweite etwas verschoben
1085 ist.  Das liegt daran, dass @code{\repeat} zwei @code{\relative}-Umgebungen
1086 erstellt, die jede implizit einen @code{Staff}- und @code{Voice}-Kontext
1087 erstellen.
1088
1089 @lilypond[quote,verbatim]
1090 \repeat unfold 2 {
1091   \relative { c'4 d e f }
1092 }
1093 @end lilypond
1094
1095 Indem man die @code{Voice}-Kontexte explizit erstellt, kann das Problem
1096 umgangen werden.
1097
1098 @lilypond[quote,verbatim]
1099 \new Voice {
1100   \repeat unfold 2 {
1101     \relative { c'4 d e f }
1102   }
1103 }
1104 @end lilypond
1105
1106
1107 @node Offensichtlicher Fehler in ../ly/init.ly
1108 @unnumberedsubsec Offensichtlicher Fehler in ../ly/init.ly
1109 @translationof Apparent error in @code{../ly/init.ly}
1110
1111 Verschiedene seltsame Fehlermeldungen können über Syntax-Fehler in
1112 @file{../ly/init.ly} auftauchen, wenn die Eingabedatei nicht richtig
1113 formuliert ist, wenn sie etwa nicht richtig passende Klammerpaare
1114 oder Anführungszeichen enthält.
1115
1116 Der üblichste Fehler ist das Fehlen einer geschweiften Klammer
1117 (@code{@}}) am Ende der @code{score}-Umbgebung.  Die Lösung ist hier
1118 klar: überprüfen Sie, ob die @code{score}-Umgebung richtig beendet
1119 wurde.  Die richtige Struktur einer Eingabedatei wird beschrieben
1120 in @rlearning{Wie eine LilyPond-Eingabe-Datei funktioniert}.
1121 Ein Editor, der die Klammerpaare automatisch anzeigt, ist sehr
1122 hilfreich, um derartige Fehler zu vermeiden.
1123
1124 Eine weitere übliche Fehlerquelle ist kein Leerzeichen zwischen der
1125 letzten Silbe einer @code{lyrics}-Umgebung und der schließenden
1126 Klammer (@code{@}}).  Ohne diese Trennung wird die Klammer als
1127 Teil der Silbe gewertet.  Es bietet sich immer an, Leerzeichen vor
1128 und hinter @emph{jede} Klammer zu setzen.  Wie wichtig das ist, wenn
1129 Gesangstext eingesetzt wird, siehe @ruser{Eingabe von Text}.
1130
1131 Diese Fehlermeldung kann auch mit einem fehlenden schließenden Anführungszeichen
1132 (@code{"}) auftreten.  In diesem Fall sollte die begleitende Fehlermeldung
1133 eine Zeilenzahl angeben, die dicht am Fehler liegt.  Die nicht paarigen
1134 Anführungszeichen sind meistens ein oder zwei Zeilen darüber.
1135
1136
1137 @node Fehlermeldung Ungebundene Variable %
1138 @unnumberedsubsec Fehlermeldung Ungebundene Variable %
1139 @translationof Error message Unbound variable %
1140
1141 Diese Fehlermeldung erscheint am Ende der Kommandozeilenausgabe oder in der
1142 Log-Datei mit einer Meldung @qq{GUILE signalled an error ...}
1143 jedes Mal, wenn eine Scheme-Routine aufgerufen wird, die
1144 (falscherweise) ein @emph{LilyPond}-Kommentar und kein
1145 @emph{Scheme}-Kommentar enthält.
1146
1147 LilyPond-Kommentare befginnen mit dem Prozent-Zeichen (@code{%}) und
1148 dürfen nicht in Scheme-Routinen benutzt werden.  Scheme-Kommentare beginnen
1149 mit einem Semikolon (@code{;}).
1150
1151 @node Fehlermeldung FT_Get_Glyph_Name
1152 @unnumberedsubsec Fehlermeldung FT_Get_Glyph_Name
1153 @translationof Error message FT_Get_Glyph_Name
1154
1155 Diese Fehlermeldung erscheint in der Kommandozeilenausgabe, wenn die
1156 Datei ein Zeichen enthält, das nicht zu ASCII gehört und die Datei
1157 nicht in UTF-8-Kodierung gespeichert wurd.  Sie auch @ruser{Zeichenkodierung}.
1158
1159
1160 @node Warnung über absteigende staff affinities
1161 @unnumberedsubsec Warnung über absteigende staff affinities
1162 @translationof Warning staff affinities should only decrease
1163
1164 Diese Warnung erscheint, wenn keine Notensysteme in der Ausgabe vorhanden
1165 sind, wenn etwa nur @code{ChordName}-Kontext und @code{Lyrics}-Kontext
1166 in einem Liedblatt vorhanden sind.  Die Warnungen können vermieden werden,
1167 indem man einen der Kontexte als System erscheinen lässt, indem man ihm
1168 zu Beginn hinzufügt:
1169
1170 @example
1171 \override VerticalAxisGroup.staff-affinity = ##f
1172 @end example
1173
1174 Zu Einzelheiten siehe @qq{Abstand von Nicht-Notensystemzeilen} in
1175 @ruser{Flexible vertikale Abstände in Systemgruppen}.