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