]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/de/application/running.itely
Merge branch 'lilypond/translation' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond
[lilypond.git] / Documentation / de / application / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
2
3 @ignore
4     Translation of GIT committish: 7b70644b95f383b4281e9ffa146d315d2ada11d3
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  See TRANSLATION for details.
8 @end ignore
9
10 @c \version "2.12.0"
11
12 @c Translators: Reinhold Kainhofer, Till Paala
13
14 @node lilypond starten
15 @chapter @command{lilypond} starten
16 @translationof Running lilypond
17
18 Dieses Kapitel behandelt die technischen Details, wie Lilypond ausgeführt werden kann.
19
20
21 @menu
22 * Übliche Programmbenutzung::
23 * Benutzung auf der Kommandozeile::
24 * Fehlermeldungen::
25 @end menu
26
27 @node Übliche Programmbenutzung
28 @section Übliche Programmbenutzung
29 @translationof Normal usage
30
31 Die meisten Benutzer führen LilyPond von einer graphischen Benutzeroberfläche
32 aus. Siehe
33 FIXME
34 @c @rlearning{Erste Schritte},
35  falls Sie dies nicht bereits getan haben.
36
37
38 @node Benutzung auf der Kommandozeile
39 @section Benutzung auf der Kommandozeile
40 @translationof Command-line usage
41
42 Dieser Abschnitt enthält zusätzliche Informationen, wie Sie LilyPond
43 von der Kommandozeile ausführen können.  Dies kann erforderlich sein,
44 um etwa zusätzliche Optionen an das Programm zu übergeben.  Außerdem
45 sind einige Zusatzprogramme (wie etwa @code{midi2ly}) nur von der
46 Kommandozeile verfügbar.
47
48 Unter @q{Kommandozeile} verstehen wir die Kommandozeile des jeweiligen
49 Betriebssystems. Windows Benutzern ist sie vielleicht eher unter den
50 englischen Begriffen @q{DOS shell} oder @q{command shell} bekannt.
51 MacOS@tie{}X Benutzer kennen sie eher unter @q{Terminal} oder @q{Konsole}.
52 Sie sollten auch den Abschnitt 
53 FIXME
54 @c @ref{Einrichtung für MacOS X}
55 konsultieren.
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 * Optionen von lilypond auf der Kommandozeile::
66 * Umgebungsvariablen::
67 @end menu
68
69 @node lilypond aufrufen
70 @subsection @command{lilypond} aufrufen
71 @translationof Invoking lilypond
72
73 @cindex @command{lilypond} aufrufen
74 @cindex Kommandozeilen-Optionen für @command{lilypond}
75 @cindex Optionen an der Kommandozeile
76
77 Das @command{lilypond} Programm kann folgendermaßen von der Kommandozeile
78 aufgerufen werden.
79
80 @example
81 lilypond [@var{Option}]@dots{} @var{Dateiname}@dots{}
82 @end example
83
84
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{-})
88 als @var{Dateiname}.
89
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.}
97
98 Falls @file{Dateiname.ly} mehr als einen @code{\score}-Block 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 Dateienamen
102 und der Zahl eingefügt.  Eine Lilypond-Datei @var{Dateiname.ly} mit dem Inhalt
103
104 @example
105 #(define output-suffix "Geige")
106 \score @{ @dots{} @}
107 #(define output-suffix "Cello")
108 \score @{ @dots{} @}
109 @end example
110
111 @noindent
112 erzeugt daher die Dateien @var{Dateiname}@file{-Geige.pdf} und
113 @var{Dateiname}@file{-Cello-1.pdf}.
114
115
116
117 @node Optionen von lilypond auf der Kommandozeile
118 @subsection Optionen auf der Kommandozeile für @command{lilypond}
119 @translationof Command line options for lilypond
120
121 Die folgenden Kommandozeilenoptionen werden von @command{lilypond} unterstützt:
122
123 @table @code
124
125 @item -e,--evaluate=@var{expr}
126 Wertet den Scheme-Ausdruck @var{expr} aus, bevor die @file{.ly} Dateien 
127 gelesen und interpretiert werden.
128 Die @code{-e} Option kann auch mehrfach angegeben werden, die Ausdrücke
129 werden nacheinander ausgewertet.
130
131 Da der Ausdruck im @code{guile-user} Modul ausgewertet wird, ist bei der 
132 Definitionen innerhalb von @var{expr} folgendes Vorgehen nötig. An der 
133 Kommandozeile wird z.B. @code{a} im @code{guile-user} Modul definiert:
134
135 @example
136 lilypond -e '(define-public a 42)'
137 @end example
138
139 @noindent
140 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:
141
142 @example
143 #(use-modules (guile-user))
144 @end example
145
146
147 @item -f,--format=@var{Format}
148 Bestimmt das Ausgabeformat. Mögliche Werte von @var{Format} sind
149 @code{svg}, @code{ps}, @code{pdf} und @code{png}.
150
151 Beispiel: @code{lilypond -fpng @var{Dateiname}.ly}
152
153
154
155 @item -d,--define-default=@var{Variable}=@var{Wert}
156 Damit wird die interne Programmoption @var{Variable} auf den Scheme-Wert 
157 @var{Wert} gesetzt. Wird kein @var{Wert} angegeben, so wird @var{#t} benutzt.
158 Um eine Option auszuschalten, kann der Präfix @code{no-} dem Namen 
159 @var{Variable} der Variable vorangestellt werden. So ist etwa
160
161 @cindex Point and Click, Kommandozeile
162
163 @example
164 -dno-point-and-click
165 @end example
166
167 @noindent
168 dasselbe wie
169 @example
170 -dpoint-and-click='#f'
171 @end example
172
173 Hier sind ein paar interessante Optionen:
174
175 @cindex Hilfe, Kommandozeile
176
177 @table @samp
178 @item help
179 Die Ausführung von @code{lilypond -dhelp} zeigt alle verfügbaren @code{-d} 
180 Optionen.
181
182 @cindex Papierformat, Kommandozeile
183
184 @item paper-size
185 Setzt das Standard-Papierformat,
186 @example
187 -dpaper-size=\"letter\"
188 @end example
189
190 @noindent
191 Die Zeichenkette, die das Format angibt, muss in Anführungszeichen mit Backslash 
192 ( @code{\"} ) stehen.
193
194 @cindex sicher, Kommandozeile
195 @cindex safe, Kommandozeile
196
197 @item safe
198 Vertraut der @code{.ly} Datei nicht.
199
200 Wenn LilyPond über einen Webserver verfügbar gemacht wird, @b{MUSS} unbedingt
201 eine die Optionen @code{--safe} oder @code{--jail} angegeben werden.
202 Die @code{--safe} Option verhindert, dass in der .ly-Datei angegebener 
203 Scheme-Code das System gefährden kann, wie etwa in folgendem Beispiel:
204
205 @quotation
206 @verbatim
207 #(system "rm -rf /")
208 {
209   c4^#(ly:export (ly:gulp-file "/etc/passwd"))
210 }
211 @end verbatim
212 @end quotation
213
214 Mit der @code{-dsafe} Option werden alle Scheme-Ausdrücke einem speziellen
215 sicheren Modus ausgewertet. Dieser Modus ist vom GUILE @file{safe-r5rs} Modul
216 abgeleitet und fügt noch zahlreiche weitere erlaubte Funktionen der
217 LilyPond Programm-Schnittstelle hinzu. Diese Funktionen sind in 
218 @file{scm/@/safe@/-lily@/.scm} angegeben.
219
220 Zusätzliche verbietet der sichere Modus auch @code{\include} Befehle.
221
222 Im sicheren Modus ist es nicht möglich, LilyPond-Variablen nach Scheme 
223 zu exportieren.
224
225 @code{-dsafe} erkennt jedoch @emph{KEINE} Überbeanspruchung der verfügbaren
226 Ressourcen. In diesem Modus ist es also trotzdem möglich, dass LilyPond in einer
227 Endlosschleife hängt, z.B. wenn zyklische Datenstrukturen an das Backend 
228 übergeben werden. Wenn LilyPond also auf einem öffentlich zugänglichen 
229 Webserver verfügbar gemacht wird, sollte der Prozess sowohl in der CPU-
230 als auch in der Speichernutzung limitiert werden.
231
232 Der sichere Modus verhindert auch, dass zahlreiche nützliche 
233 Musikfragmente von LilyPond verarbeitet werden. Die @code{--jail} Option ist
234 eine sicherere Alternative, benötigt allerdings auch mehr Aufwand zur 
235 Einrichtung.
236
237 @item backend
238 Gibt an, welches Ausgabeformat das LilyPond Backend benutzt. Mögliche Werte
239 für diese Option sind:
240
241 @table @code
242 @item ps
243 PostScript-Ausgabeformat.
244
245 @cindex PostScript Ausgabeformat
246
247 Postscript-Dateien enthalten auch TTF-, Type1- und OTF-Schriften. Allerdings 
248 wird die gesamte Schriftart eingefügt und nicht nur die benötigten Zeichen.
249 Vor allem wenn nicht-westliche Zeichensätze benutzt werden, kann dies zu sehr
250 großen Dateien führen.
251
252 @cindex PostScript Ausgabeformat
253 @cindex EPS (encapsulated PostScript)
254
255 @item eps
256 Erzeugt @q{encapsulated PostScript} (EPS). Jede Seite (oder jedes System) wird
257 als eigene @file{EPS}-Datei ausgegeben, inklusive Schriftarten. Außerdem wird
258 eine Datei mit allen Seiten (bzw. Systemen) und Schriftarten erzeugt.
259
260 Dies ist die Standardeinstellung von @command{lilypond-book}.
261
262 @cindex SVG (scalable vector graphics)
263 @cindex Vektorgraphik (SVG)
264
265 @item svg
266
267 SVG-Ausgabe (Scalable Vector Graphics).
268
269 Hiermit wird eine einzelne SVG-Datei ohne eingebundene Schriften
270 für jede Seite der Partitur erstellt.  Es wird empfohlen, Century
271 Schoolbook-Schriftarten zu installieren, die auch in der LilyPond-Installation
272 enthalten sind, um optimales Rendern zu erhalten.  Unter UNIX können
273 diese Schriftarten einfach aus dem LilyPond-Verzeichnis (normalerweise
274 @file{/usr/share/lilypond/VERSION/fonts/otf/}) nach @file{~/.fonts}
275 kopiert werden.  Die SVG-Ausgabe sollte mit allen SVG-Editoren oder
276 Betrachtungsprogrammen kompatibel sein.
277
278 @cindex Scheme-dump
279
280 @item scm
281 gibt die rohen Scheme-basierenden Zeichenbefehle aus, wie sie intern von 
282 LilyPond benutzt werden.
283
284 @cindex Scheme dump
285
286 @item null
287 Keine Partitur wird ausgegeben, hat gleichen Effekt wie @code{-dno-print-pages}.
288
289 @end table
290
291 Beispiel: @code{lilypond -dbackend=svg @var{Dateiname}.ly}
292
293 @cindex Ausgabeformat
294 @cindex Vorschau
295
296 @item preview
297 Erzeugt eine Ausgabedatei, die nur die Titelzeilen und das erste System 
298 enthält.
299
300 @item print-pages
301 Erzeugt vollständige Seiten (Standardeinstellung).  @code{-dno-print-pages} 
302 ist in Verbindung mit @code{-dpreview} nützlich.
303
304 @end table
305
306
307
308 @item -h,--help
309 Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen.
310
311 @item -H,--header=@var{FELD}
312 Gibt den Inhalt eines Feldes aus dem @code{\header}-Block in die Datei 
313 @file{Dateiname.@var{FELD}} aus.
314
315 @item --include, -I=@var{Verzeichnis}
316 Fügt @var{Verzeichnis} zur Liste der Suchpfade hinzu.
317 @cindex Dateisuche
318 @cindex Suchpfad
319
320 @item -i,--init=@var{Initialisierungsdatei}
321 Benutzt @var{Initialisierungsdatei} zur gesamten Programminitialisierung. Der 
322 Standardwert ist @file{init.ly}.
323
324 @item -o,--output=@var{DATEI}
325 Schreibt das Ergebnis der Verarbeitung mit LilyPond in die Ausgabedatei
326 @var{DATEI}. 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 (PDF)
347
348 @item --pdf
349 Erzeugt PDF-Dateien. Dies impliziert @code{--ps}.
350
351 @item -j,--jail=@var{Benutzer},@var{Gruppe},@var{Jail-Verzeichnis},@var{Arbeitsverzeichnis}
352 Führt @command{lilypond} in einem chroot-Jail aus.
353
354 Die @code{--jail} Option ist eine flexiblere Alternative zu @code{--safe}, wenn
355 LilyPond über das Internet verfügbar gemacht wird oder LilyPond-Quelldateien
356 von Dritten automatisch vararbeitet werden.
357
358 Sie funktioniert dergestalt, dass das Wurzelverzeichnis von 
359 @command{lilypond} auf @var{Jail-Verzeichnis} gesetzt wird, bevor die
360 tatsächliche Kompilierung der .ly-Datei beginnt. Der Benutzer und die Gruppe
361 werden auf die angegebenen Werte gesetzt und das aktuelle Arbeitsverzeichnis
362 wird ebenfalls auf den angegebenen Wert @var{Arbeitsverzeichnis} gesetzt.
363 Diese Einstellungen garantieren (zumindest in der Theorie), dass es nicht
364 möglich ist, aus dem Jail auszubrechen. Damit @code{--jail} funktioniert, muss
365 @command{lilypond} allerdings als root ausgeführt werden, was normalerweise
366 auf sichere Art mit dem Kommando @command{sudo} erreicht werden kann.
367
368 Das Jail-Verzeichnis zu erstellen ist etwas heikel, da LilyPond alle zur 
369 Ausführung nötigen Bibliotheken und Dateien @emph{innerhalb des 
370 Jail-Verzeichnisses} finden muss. Ein typisches Setup besteht aus folgenden
371 Punkten:
372
373 @table @asis
374 @item Erstellung eines getrennten Dateisystems
375 Ein eigenes Dateisystem muss für LilyPond erstellt werden, sodass es mit
376 sicheren Einstellungen wie @code{noexec}, @code{nodev} und @code{nosuid}
377 eingebunden werden kann. Damit ist es unmöglich, Programme von diesem
378 Dateisystem auszuführen oder direkt auf eine Hardware-Schnittstelle 
379 zuzugreifen. Wenn Sie keine eigene Partition erstellen möchten, können Sie
380 auch eine Datei der entsprechenden Größe erstellen und sie als @q{loop}-Gerät 
381 einbinden. Ein getrenntes Dateisystem garantiert auch, dass LilyPond nicht 
382 mehr Festplattenspeicher benutzt als erlaubt.
383
384 @item Erstellung eines eigenen Benutzerkontos
385 Es sollte ein eigener Benutzer und eine eigene Gruppe (z. B. 
386 @code{lily}/@code{lily}) mit geringen Rechten für die Ausführung von LilyPond
387 innerhalb des Jails benutzt werden. Nur ein einziges Verzeichnis des Jails sollte
388 für den Benutzer schreibbar sein und als @var{Arbeitsverzeichnis} an 
389 @code{lilypond} übergeben werden.
390
391 @item Einrichtung des Jails
392 LilyPond muss zahlreiche Dateien für die Ausführung einlesen. All diese
393 Dateien müssen in das Jail-Verzeichnis kopiert werden (mit denselben Pfaden
394 wie im tatsächlichen Wurzel-Dateisystem). Die gesamte LilyPond-Installation
395 (typischerweise @file{/usr/share/lilypond}) sollte kopiert werden.
396
397 Falls Probleme auftreten, ist es am einfachsten, Lilypond mittels 
398 @command{strace} zu starten, wodurch Sie relativ leicht feststellen können,
399 welche Dateien im Jail noch fehlen.
400
401 @item Ausführung von LilyPond
402 In einem mit @code{noexec} eingebundenen Jail ist es nicht möglich, externe
403 Programme auszuführen. Daher muss LilyPond auf eine Art gestartet werden, 
404 die keine weitere Ausführung von Programmen benötigt. Wie bereits erwähnt 
405 muss LilyPond mit Administrator-Rechten gestartet werden (die es allerdings
406 sofort wieder abgibt), beispielsweise mittels @command{sudo}. Außerdem 
407 ist es eine gute Idee, die LilyPond zur Verfügung stehende CPU-Zeit zu
408 limitieren (z. B. mit @command{ulimit -t}) und -- falls das Betriebssystem
409 dies unterstützt -- auch den zur Verfügung stehenden Hauptspeicher.
410 @end table
411
412
413 @item -v,--version
414 Gibt die Versionsnummer aus.
415
416 @item -V,--verbose
417 Gibt ausführliche informative Meldungen aus: Zeigt die vollen Dateipfade
418 aller gelesenen Dateien sowie Informationen über die Laufzeit.
419
420 @item -w,--warranty
421 Zeigt die Garantiebedingungen an, unter denen GNU LilyPond steht. (Es besteht
422 @strong{KEINERLEI GARANTIE}!)
423 @end table
424
425
426 @node Umgebungsvariablen
427 @subsection Umgebungsvariablen
428 @translationof Environment variables
429
430 @cindex LANG
431 @cindex LILYPOND_DATADIR
432
433 @command{lilypond} erkennt und benützt die folgenden Umgebungsvariablen:
434 @table @code
435 @item LILYPOND_DATADIR
436 Diese Variable gibt das Verzeichnis an, wo Lilypond seine eigenen Dateien,
437 Meldungen und Übersetzungen finden kann.  Dieses Verzeichnis sollte
438 Unterverzeichnisse @file{ly/}, @file{ps/}, @file{tex/}, etc. beinhalten.
439
440 @item LANG
441 Gibt die Sprache an, in der Warnungen und Fehlermeldungen ausgegeben werden.
442
443 @item LILYPOND_GC_YIELD
444 Mit dieser Variable (mit Werten zwischen 0 und 100) kann die Feinabstimmung
445 zwischen dem Bedarf an Hauptspeicher und Rechenleistung bei der Ausführung
446 von LilyPond durchgeführt werden.  Bei höheren Werten benutzt LilyPond
447 mehr Hauptspeicher, benötigt aber weniger Prozessor-Leistung.  Bei
448 niedrigeren Werten wird mehr Prozessor-Zeit, dafür weniger Hauptspeicher
449 benötigt.  Voreinstellung ist ein Wert von @code{70}.
450
451 @end table
452
453
454 @node Fehlermeldungen
455 @section Fehlermeldungen
456 @translationof Error messages
457
458 @cindex error messages
459 Während der Verarbeitung einer Dateien können diverse Meldungen an der
460 Kommandozeile auftreten:
461
462 @table @emph
463
464 @item Warnung
465 @cindex Warnung
466 Irgendetwas ist verdächtig.  Wenn Sie etwas Ungewöhnliches in Ihrer
467 Datei durchführen, dann werden Sie die Meldung verstehen und können
468 sie gegebenenfalls ignorieren.  Im Normalfall jedoch bedeutet eine
469 Warnung, dass mit Ihrer Datei etwas nicht stimmt, LilyPond jedoch
470 trotzdem versucht, die Datei soweit wie möglich korrekt zu übersetzen.
471
472 @item Fehler
473 @cindex Fehler
474 Irgendetwas stimmt definitiv nicht.  Der aktuelle Bearbeitungsschritt
475 (Einlesen, Interpretieren oder Formatieren der Datei) wird noch fertig
476 ausgeführt, danach bricht die Bearbeitung aber ab.
477
478 @item Fataler Fehler
479 @cindex Fataler Fehler
480 Irgendetwas stimmt definitiv nicht und LilyPond kann nicht weiter
481 ausgeführt werden.  Dies ist nur sehr selten der Fall, meist sind
482 die Schriftarten nicht korrekt installiert.
483
484 @item Scheme Fehler
485 @cindex Fehlerprotokoll, Scheme
486 @cindex Scheme Fehler
487 Fehler, die während der Ausführung von Scheme-Code auftreten, werden
488 vom Scheme-Interpreter aufgefangen und an der Kommandozeile ausgegeben.
489 Wenn Sie LilyPond mit der @code{--verbose} Option (auch @code{-V})
490 ausführen, wird der sogennante @q{Call trace} ausgegeben, der die
491 aufgerufenen Funktionen zur Zeit des Fehlers angibt.
492
493 @item Programmierfehler
494 @cindex Programmierfehler
495 Eine interne Inkonsistenz ist aufgetreten.  Diese Fehlermeldungen
496 sollen den Programmierern die Fehlersuche erleichtern und
497 können meistens einfach ignoriert werden.  In manchen Fällen werden
498 so viele Meldungen ausgegeben, dass die Lesbarkeit der restliche
499 Ausgabe davon beeinträchtigt wird.
500
501 @item Abgebrochen (core dumped)
502 Dies bezeichnet einen ernsten Programmierfehler, der das Programm
503 zum Absturz gebracht hat.  Solche Fehler werden als kritisch angesehen.
504 Falls daher einer auftritt, senden Sie bitte einen Bug-Report!
505 @end table
506
507 @cindex Fehlermeldung, Format
508 @cindex Form der Fehlermeldungen
509 Wenn Warnungen oder Fehlermeldungen mit einer konkreten Stelle in der
510 Eingabedatei verknüpft werden können, dann hat die Meldung die folgende
511 Form:
512
513 @example
514 @var{Dateiname}:@var{Zeile}:@var{Spalte}: @var{Meldung}
515 @var{Fehlerhafte Eingabezeile}
516 @end example
517
518 Ein Zeilenumbruch wird in der fehlerhaften Zeile an jener Stelle eingefügt,
519 wo der Fehler aufgetreten ist.  Zum Beispiel
520
521 @example
522 test.ly:2:19: Fehler: keine gültige Dauer: 5
523   @{ c'4 e'
524              5 g' @}
525 @end example
526
527 Diese Stellen sind LilyPonds Vermutung, wo die Warnung oder der Fehler
528 aufgetreten ist, allerdings treten Warnungen und Fehler ja gerade in
529 unerwarteten Fällen auf.  Manchmal kann Lilypond auch eine fehlerhafte
530 Stelle zwar noch problemlos verarbeiten, ein paar Zeilen später wirkt
531 sich der Fehler aber dann doch noch aus.  In solchen Fällen, wo Sie in
532 der angegebenen Zeile keinen Fehler erkennen, sollten Sie auch die Zeilen
533 oberhalb der angegebenen Stelle genauer unter die Lupe nehmen.