]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/de/application/running.itely
Merge branch 'lilypond/translation' of ssh://git.sv.gnu.org/srv/git/lilypond into...
[lilypond.git] / Documentation / de / application / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
2
3 @ignore
4     Translation of GIT committish: 5cf864d550e7148412d594cf336841791bff6f76
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 Rettig
13
14 @node LilyPond starten
15 @chapter 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 * Dateien mit convert-ly aktualisieren::
26 * Fehler melden::
27 @end menu
28
29 @node Übliche Programmbenutzung
30 @section Übliche Programmbenutzung
31 @translationof Normal usage
32
33 Die meisten Benutzer führen LilyPond von einer graphischen Benutzeroberfläche
34 aus. Siehe @rlearning{Erste Schritte}, falls Sie dies nicht bereits getan haben.
35
36
37 @node Benutzung auf der Kommandozeile
38 @section Benutzung auf der Kommandozeile
39 @translationof Command-line usage
40
41 Dieser Abschnitt enthält zusätzliche Informationen, wie Sie LilyPond
42 von der Kommandozeile ausführen können.  Dies kann erforderlich sein,
43 um etwa zusätzliche Optionen an das Programm zu übergeben.  Außerdem
44 sind einige Zusatzprogramme (wie etwa @code{midi2ly}) nur von der
45 Kommandozeile verfügbar.
46
47 Unter @q{Kommandozeile} verstehen wir die Kommandozeile des jeweiligen
48 Betriebssystems. Windows Benutzern ist sie vielleicht eher unter den
49 englischen Begriffen @q{DOS shell} oder @q{command shell} bekannt.
50 MacOS@tie{}X Benutzer kennen sie eher unter @q{Terminal} oder @q{Konsole}.
51 Sie sollten auch den Abschnitt @ref{Einrichtung für MacOS X} konsultieren.
52
53 Wie die Kommandozeile im jeweiligen Betriebssystem benutzt werden kann,
54 soll in diesem Handbuch nicht näher beschrieben werden. Sehen Sie bitte
55 im Handbuch Ihres Betriebssystems nach oder informieren Sie sich im
56 Internet, wenn Sie mit der Kommandozeile nicht vertraut sind.
57
58
59 @menu
60 * lilypond aufrufen::
61 * Optionen von lilypond auf der Kommandozeile::
62 * Umgebungsvariablen::
63 @end menu
64
65 @node lilypond aufrufen
66 @subsection @command{lilypond} aufrufen
67 @translationof Invoking lilypond
68
69 @cindex @command{lilypond} aufrufen
70 @cindex Kommandozeilen-Optionen für @command{lilypond}
71 @cindex Optionen an der Kommandozeile
72
73 Das @command{lilypond} Programm kann folgendermaßen von der Kommandozeile
74 aufgerufen werden.
75
76 @example
77 lilypond [@var{Option}]@dots{} @var{Dateiname}@dots{}
78 @end example
79
80
81 Wird ein @file{Dateiname} ohne Erweiterung angegeben, so wird @file{.ly} als
82 Standarderweiterung für LilyPond-Dateien benutzt.  Um Daten von
83 @code{stdin} einzulesen, benutzen Sie einfach einen Bindestrich (@code{-})
84 als @var{Dateiname}.
85
86 Wenn Lilypond die Datei @file{Dateiname.ly} verarbeitet, werden daraus
87 die Dateien @file{Dateiname.ps} und @file{Dateiname.pdf} erzeugt.
88 Es können an @code{lilypond} auch mehrere @file{.ly} Dateien übergeben
89 werden, die dann einzeln und voneinander unabhängig abgearbeitet
90 werden.@footnote{Der Zustand von GUILE wird allerdings nicht nach
91 jeder Datei zurückgesetzt, sodass Achtung geboten ist, wenn in einer
92 Datei globale Änderungen von Scheme aus durchgeführt werden.}
93
94 Falls @file{Dateiname.ly} mehr als einen @code{\score}-Block enthält,
95 werden die weiteren Stücke in durchnummerierte Dateien der Form
96 @file{Dateiname-1.pdf} ausgegeben.  Zusätzlich wird der Wert der
97 Variable @code{output-suffix} zwischen den ursprünglichen Dateienamen
98 und der Zahl eingefügt.  Eine Lilypond-Datei @var{Dateiname.ly} mit dem Inhalt
99
100 @example
101 #(define output-suffix "Geige")
102 \score @{ @dots{} @}
103 #(define output-suffix "Cello")
104 \score @{ @dots{} @}
105 @end example
106
107 @noindent
108 erzeugt daher die Dateien @var{Dateiname}@file{-Geige.pdf} und
109 @var{Dateiname}@file{-Cello-1.pdf}.
110
111
112
113 @node Optionen von lilypond auf der Kommandozeile
114 @subsection Optionen auf der Kommandozeile für @command{lilypond}
115 @translationof Command line options for lilypond
116
117 Die folgenden Kommandozeilenoptionen werden von @command{lilypond} unterstützt:
118
119 @table @code
120
121 @item -e,--evaluate=@var{expr}
122 Wertet den Scheme-Ausdruck @var{expr} aus, bevor die @file{.ly} Dateien 
123 gelesen und interpretiert werden.
124 Die @code{-e} Option kann auch mehrfach angegeben werden, die Ausdrücke
125 werden nacheinander ausgewertet.
126
127 Da der Ausdruck im @code{guile-user} Modul ausgewertet wird, ist bei der 
128 Definitionen innerhalb von @var{expr} folgendes Vorgehen nötig. An der 
129 Kommandozeile wird z.B. @code{a} im @code{guile-user} Modul definiert:
130
131 @example
132 lilypond -e '(define-public a 42)'
133 @end example
134
135 @noindent
136 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:
137
138 @example
139 #(use-modules (guile-user))
140 @end example
141
142
143 @item -f,--format=@var{Format}
144 Bestimmt das Ausgabeformat. Mögliche Werte von @var{Format} sind
145 @code{svg}, @code{ps}, @code{pdf} und @code{png}.
146
147 Beispiel: @code{lilypond -fpng @var{Dateiname}.ly}
148
149
150
151 @item -d,--define-default=@var{Variable}=@var{Wert}
152 Damit wird die interne Programmoption @var{Variable} auf den Scheme-Wert 
153 @var{Wert} gesetzt. Wird kein @var{Wert} angegeben, so wird @var{#t} benutzt.
154 Um eine Option auszuschalten, kann der Präfix @code{no-} dem Namen 
155 @var{Variable} der Variable vorangestellt werden. So ist etwa
156
157 @cindex Point and Click, Kommandozeile
158
159 @example
160 -dno-point-and-click
161 @end example
162
163 @noindent
164 dasselbe wie
165 @example
166 -dpoint-and-click='#f'
167 @end example
168
169 Hier sind ein paar interessante Optionen:
170
171 @table @samp
172 @item help
173 Die Ausführung von @code{lilypond -dhelp} zeigt alle verfügbaren @code{-d} 
174 Optionen.
175
176 @item paper-size
177 Setzt das Standard-Papierformat,
178 @example
179 -dpaper-size=\"letter\"
180 @end example
181
182 @noindent
183 Die Zeichenkette, die das Format angibt, muss in Anführungszeichen mit Backslash 
184 ( @code{\"} ) stehen.
185
186
187 @item safe
188 Vertraut der @code{.ly} Datei nicht.
189
190 Wenn LilyPond über einen Webserver verfügbar gemacht wird, @b{MUSS} unbedingt
191 eine die Optionen @code{--safe} oder @code{--jail} angegeben werden.
192 Die @code{--safe} Option verhindert, dass in der .ly-Datei angegebener 
193 Scheme-Code das System gefährden kann, wie etwa in folgendem Beispiel:
194
195 @quotation
196 @verbatim
197 #(system "rm -rf /")
198 {
199   c4^#(ly:export (ly:gulp-file "/etc/passwd"))
200 }
201 @end verbatim
202 @end quotation
203
204 Mit der @code{-dsafe} Option werden alle Scheme-Ausdrücke einem speziellen
205 sicheren Modus ausgewertet. Dieser Modus ist vom GUILE @file{safe-r5rs} Modul
206 abgeleitet und fügt noch zahlreiche weitere erlaubte Funktionen der
207 LilyPond Programm-Schnittstelle hinzu. Diese Funktionen sind in 
208 @file{scm/@/safe@/-lily@/.scm} angegeben.
209
210 Zusätzliche verbietet der sichere Modus auch @code{\include} Befehle.
211
212 Im sicheren Modus ist es nicht möglich, LilyPond-Variablen nach Scheme 
213 zu exportieren.
214
215 @code{-dsafe} erkennt jedoch @emph{KEINE} Überbeanspruchung der verfügbaren
216 Ressourcen. In diesem Modus ist es also trotzdem möglich, dass LilyPond in einer
217 Endlosschleife hängt, z.B. wenn zyklische Datenstrukturen an das Backend 
218 übergeben werden. Wenn LilyPond also auf einem öffentlich zugänglichen 
219 Webserver verfügbar gemacht wird, sollte der Prozess sowohl in der CPU-
220 als auch in der Speichernutzung limitiert werden.
221
222 Der sichere Modus verhindert auch, dass zahlreiche nützliche 
223 Musikfragmente von LilyPond verarbeitet werden. Die @code{--jail} Option ist
224 eine sicherere Alternative, benötigt allerdings auch mehr Aufwand zur 
225 Einrichtung.
226
227 @item backend
228 Gibt an, welches Ausgabeformat das LilyPond Backend benutzt. Mögliche Werte
229 für diese Option sind:
230
231 @table @code
232 @item ps
233 PostScript-Ausgabeformat.
234
235 @cindex PostScript Ausgabeformat
236
237 Postscript-Dateien enthalten auch TTF-, Type1- und OTF-Schriften. Allerdings 
238 wird die gesamte Schriftart eingefügt und nicht nur die benötigten Zeichen.
239 Vor allem wenn nicht-westliche Zeichensätze benutzt werden, kann dies zu sehr
240 großen Dateien führen.
241
242 @item eps
243 Erzeugt @q{encapsulated PostScript} (EPS). Jede Seite (oder jedes System) wird
244 als eigene @file{EPS}-Datei ausgegeben, inklusive Schriftarten. Außerdem wird
245 eine Datei mit allen Seiten (bzw. Systemen) und Schriftarten erzeugt.
246
247 Dies ist die Standardeinstellung von @command{lilypond-book}.
248
249 @item svg
250 SVG-Ausgabe (Scalable Vector Graphics). Jede Seite wird als eigene 
251 @file{SVG}-Datei ausgegeben, inklusive eingebetteten Schriftarten.
252 @cindex SVG (Scalable Vector Graphics)
253 Sie benötigen einen SVG-Betrachter, der eingebettete Schriftarten unterstützt,
254 oder einen SVG-Betrachter, der eingebettete Schriftarten durch OTF-Schriften
255 ersetzen kann. In UNIX und Linux kann z.B. @uref{http://www.inkscape.org,Inkscape}
256 (ab Version 0.42) benutzt werden, nachdem die OTF-Schriften aus dem 
257 LilyPond-Verzeichnis (typischerweise @file{/usr/share/lilypond/VERSION/fonts/otf/})
258 in das Verzeichnis @file{~/.fonts/} kopiert wurden.
259
260 @item scm
261 gibt die rohen Scheme-basierenden Zeichenbefehle aus, wie sie intern von 
262 LilyPond benutzt werden.
263
264 @cindex Scheme dump
265
266 @item null
267 Keine Partitur wird ausgegeben, hat gleichen Effekt wie @code{-dno-print-pages}.
268
269 @end table
270
271 Beispiel: @code{lilypond -dbackend=svg @var{Dateiname}.ly}
272
273 @cindex Ausgabeformat
274
275 @item preview
276 Erzeugt eine Ausgabedatei, die nur die Titelzeilen und das erste System 
277 enthält.
278
279 @item print-pages
280 Erzeugt vollständige Seiten (Standardeinstellung).  @code{-dno-print-pages} 
281 ist in Verbindung mit @code{-dpreview} nützlich.
282
283 @end table
284
285
286
287 @item -h,--help
288 Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen.
289
290 @item -H,--header=@var{FELD}
291 Gibt den Inhalt eines Feldes aus dem @code{\header}-Block in die Datei 
292 @file{Dateiname.@var{FELD}} aus.
293
294 @item --include, -I=@var{Verzeichnis}
295 Fügt @var{Verzeichnis} zur Liste der Suchpfade hinzu.
296 @cindex Dateisuche
297 @cindex Suchpfad
298
299 @item -i,--init=@var{Initialisierungsdatei}
300 Benutzt @var{Initialisierungsdatei} zur gesamten Programminitialisierung. Der 
301 Standardwert ist @file{init.ly}.
302
303 @item -o,--output=@var{DATEI}
304 Schreibt das Ergebnis der Verarbeitung mit LilyPond in die Ausgabedatei
305 @var{DATEI}. Die entsprechende Dateinamenserweiterung wird angehängt (z.B. 
306 @code{.pdf} für pdf).
307
308 @item --ps
309 Erzeugt PostScript.
310
311 @item --png
312 Erzeugt eine Grafik-Datei im PNG-Format von jeder Seite. Diese Option
313 impliziert auch @code{--ps}. Die Auflösung in DPI der Grafik kann festgelegt
314 werden durch
315 @example
316 -dresolution=110
317 @end example
318
319 @item --pdf
320 Erzeugt PDF-Dateien. Dies impliziert @code{--ps}.
321
322 @item -j,--jail=@var{Benutzer},@var{Gruppe},@var{Jail-Verzeichnis},@var{Arbeitsverzeichnis}
323 Führt @command{lilypond} in einem chroot-Jail aus.
324
325 Die @code{--jail} Option ist eine flexiblere Alternative zu @code{--safe}, wenn
326 LilyPond über das Internet verfügbar gemacht wird oder LilyPond-Quelldateien
327 von Dritten automatisch vararbeitet werden.
328
329 Sie funktioniert dergestalt, dass das Wurzelverzeichnis von 
330 @command{lilypond} auf @var{Jail-Verzeichnis} gesetzt wird, bevor die
331 tatsächliche Kompilierung der .ly-Datei beginnt. Der Benutzer und die Gruppe
332 werden auf die angegebenen Werte gesetzt und das aktuelle Arbeitsverzeichnis
333 wird ebenfalls auf den angegebenen Wert @var{Arbeitsverzeichnis} gesetzt.
334 Diese Einstellungen garantieren (zumindest in der Theorie), dass es nicht
335 möglich ist, aus dem Jail auszubrechen. Damit @code{--jail} funktioniert, muss
336 @command{lilypond} allerdings als root ausgeführt werden, was normalerweise
337 auf sichere Art mit dem Kommando @command{sudo} erreicht werden kann.
338
339 Das Jail-Verzeichnis zu erstellen ist etwas heikel, da LilyPond alle zur 
340 Ausführung nötigen Bibliotheken und Dateien @emph{innerhalb des 
341 Jail-Verzeichnisses} finden muss. Ein typisches Setup besteht aus folgenden
342 Punkten:
343
344 @table @asis
345 @item Erstellung eines getrennten Dateisystems
346 Ein eigenes Dateisystem muss für LilyPond erstellt werden, sodass es mit
347 sicheren Einstellungen wie @code{noexec}, @code{nodev} und @code{nosuid}
348 eingebunden werden kann. Damit ist es unmöglich, Programme von diesem
349 Dateisystem auszuführen oder direkt auf eine Hardware-Schnittstelle 
350 zuzugreifen. Wenn Sie keine eigene Partition erstellen möchten, können Sie
351 auch eine Datei der entsprechenden Größe erstellen und sie als @q{loop}-Gerät 
352 einbinden. Ein getrenntes Dateisystem garantiert auch, dass LilyPond nicht 
353 mehr Festplattenspeicher benutzt als erlaubt.
354
355 @item Erstellung eines eigenen Benutzerkontos
356 Es sollte ein eigener Benutzer und eine eigene Gruppe (z. B. 
357 @code{lily}/@code{lily}) mit geringen Rechten für die Ausführung von LilyPond
358 innerhalb des Jails benutzt werden. Nur ein einziges Verzeichnis des Jails sollte
359 für den Benutzer schreibbar sein und als @var{Arbeitsverzeichnis} an 
360 @code{lilypond} übergeben werden.
361
362 @item Einrichtung des Jails
363 LilyPond muss zahlreiche Dateien für die Ausführung einlesen. All diese
364 Dateien müssen in das Jail-Verzeichnis kopiert werden (mit denselben Pfaden
365 wie im tatsächlichen Wurzel-Dateisystem). Die gesamte LilyPond-Installation
366 (typischerweise @file{/usr/share/lilypond}) sollte kopiert werden.
367
368 Falls Probleme auftreten, ist es am einfachsten, Lilypond mittels 
369 @command{strace} zu starten, wodurch Sie relativ leicht feststellen können,
370 welche Dateien im Jail noch fehlen.
371
372 @item Ausführung von LilyPond
373 In einem mit @code{noexec} eingebundenen Jail ist es nicht möglich, externe
374 Programme auszuführen. Daher muss LilyPond auf eine Art gestartet werden, 
375 die keine weitere Ausführung von Programmen benötigt. Wie bereits erwähnt 
376 muss LilyPond mit Administrator-Rechten gestartet werden (die es allerdings
377 sofort wieder abgibt), beispielsweise mittels @command{sudo}. Außerdem 
378 ist es eine gute Idee, die LilyPond zur Verfügung stehende CPU-Zeit zu
379 limitieren (z. B. mit @command{ulimit -t}) und -- falls das Betriebssystem
380 dies unterstützt -- auch den zur Verfügung stehenden Hauptspeicher.
381 @end table
382
383
384 @item -v,--version
385 Gibt die Versionsnummer aus.
386
387 @item -V,--verbose
388 Gibt ausführliche informative Meldungen aus: Zeigt die vollen Dateipfade
389 aller gelesenen Dateien sowie Informationen über die Laufzeit.
390
391 @item -w,--warranty
392 Zeigt die Garantiebedingungen an, unter denen GNU LilyPond steht. (Es besteht
393 @strong{KEINERLEI GARANTIE}!)
394 @end table
395
396
397 @node Umgebungsvariablen
398 @subsection Umgebungsvariablen
399 @translationof Environment variables
400
401 @cindex LANG
402 @cindex LILYPOND_DATADIR
403
404 @command{lilypond} erkennt und benützt die folgenden Umgebungsvariablen:
405 @table @code
406 @item LILYPOND_DATADIR
407 Diese Variable gibt das Verzeichnis an, wo Lilypond seine eigenen Dateien,
408 Meldungen und Übersetzungen finden kann.  Dieses Verzeichnis sollte
409 Unterverzeichnisse @file{ly/}, @file{ps/}, @file{tex/}, etc. beinhalten.
410
411 @item LANG
412 Gibt die Sprache an, in der Warnungen und Fehlermeldungen ausgegeben werden.
413
414 @item LILYPOND_GC_YIELD
415 Mit dieser Variable (mit Werten zwischen 0 und 100) kann die Feinabstimmung
416 zwischen dem Bedarf an Hauptspeicher und Rechenleistung bei der Ausführung
417 von LilyPond durchgeführt werden.  Bei höheren Werten benutzt LilyPond
418 mehr Hauptspeicher, benötigt aber weniger Prozessor-Leistung.  Bei
419 niedrigeren Werten wird mehr Prozessor-Zeit, dafür weniger Hauptspeicher
420 benötigt.  Voreinstellung ist ein Wert von @code{70}.
421
422 @end table
423
424
425 @node Fehlermeldungen
426 @section Fehlermeldungen
427 @translationof Error messages
428
429 @cindex error messages
430 Während der Verarbeitung einer Dateien können diverse Meldungen an der
431 Kommandozeile auftreten:
432
433 @table @emph
434
435 @item Warnung
436 @cindex Warnung
437 Irgendetwas ist verdächtig.  Wenn Sie etwas Ungewöhnliches in Ihrer
438 Datei durchführen, dann werden Sie die Meldung verstehen und können
439 sie gegebenenfalls ignorieren.  Im Normalfall jedoch bedeutet eine
440 Warnung, dass mit Ihrer Datei etwas nicht stimmt, LilyPond jedoch
441 trotzdem versucht, die Datei soweit wie möglich korrekt zu übersetzen.
442
443 @item Fehler
444 @cindex Fehler
445 Irgendetwas stimmt definitiv nicht.  Der aktuelle Bearbeitungsschritt
446 (Einlesen, Interpretieren oder Formatieren der Datei) wird noch fertig
447 ausgeführt, danach bricht die Bearbeitung aber ab.
448
449 @item Fataler Fehler
450 @cindex Fataler Fehler
451 Irgendetwas stimmt definitiv nicht und LilyPond kann nicht weiter
452 ausgeführt werden.  Dies ist nur sehr selten der Fall, meist sind
453 die Schriftarten nicht korrekt installiert.
454
455 @item Scheme Fehler
456 @cindex Fehlerprotokoll, Scheme
457 @cindex Scheme Fehler
458 Fehler, die während der Ausführung von Scheme-Code auftreten, werden
459 vom Scheme-Interpreter aufgefangen und an der Kommandozeile ausgegeben.
460 Wenn Sie LilyPond mit der @code{--verbose} Option (auch @code{-V})
461 ausführen, wird der sogennante @q{Call trace} ausgegeben, der die
462 aufgerufenen Funktionen zur Zeit des Fehlers angibt.
463
464 @item Programmierfehler
465 @cindex Programmierfehler
466 Eine interne Inkonsistenz ist aufgetreten.  Diese Fehlermeldungen
467 sollen den Programmierern die Fehlersuche erleichtern und
468 können meistens einfach ignoriert werden.  In manchen Fällen werden
469 so viele Meldungen ausgegeben, dass die Lesbarkeit der restliche
470 Ausgabe davon beeinträchtigt wird.
471
472 @item Abgebrochen (core dumped)
473 Dies bezeichnet einen ernsten Programmierfehler, der das Programm
474 zum Absturz gebracht hat.  Solche Fehler werden als kritisch angesehen.
475 Falls daher einer auftritt, senden Sie bitte einen Bug-Report!
476 @end table
477
478 @cindex Fehlermeldung, Format
479 @cindex Form der Fehlermeldungen
480 Wenn Warnungen oder Fehlermeldungen mit einer konkreten Stelle in der
481 Eingabedatei verknüpft werden können, dann hat die Meldung die folgende
482 Form:
483
484 @example
485 @var{Dateiname}:@var{Zeile}:@var{Spalte}: @var{Meldung}
486 @var{Fehlerhafte Eingabezeile}
487 @end example
488
489 Ein Zeilenumbruch wird in der fehlerhaften Zeile an jener Stelle eingefügt,
490 wo der Fehler aufgetreten ist.  Zum Beispiel
491
492 @example
493 test.ly:2:19: Fehler: keine gültige Dauer: 5
494   @{ c'4 e'
495              5 g' @}
496 @end example
497
498 Diese Stellen sind LilyPonds Vermutung, wo die Warnung oder der Fehler
499 aufgetreten ist, allerdings treten Warnungen und Fehler ja gerade in
500 unerwarteten Fällen auf.  Manchmal kann Lilypond auch eine fehlerhafte
501 Stelle zwar noch problemlos verarbeiten, ein paar Zeilen später wirkt
502 sich der Fehler aber dann doch noch aus.  In solchen Fällen, wo Sie in
503 der angegebenen Zeile keinen Fehler erkennen, sollten Sie auch die Zeilen
504 oberhalb der angegebenen Stelle genauer unter die Lupe nehmen.
505
506
507 @node Dateien mit convert-ly aktualisieren
508 @section Dateien mit @command{convert-ly} aktualisieren
509 @translationof Updating files with convert-ly
510
511 @cindex Aktualisierung von LilyPond-Dateien
512 @cindex Aktualisierung mit convert-ly
513 @cindex convert-ly: Aktualisierung
514
515 Die Eingabesyntax von LilyPond ändert sich graduell um etwa die
516 Eingabe zu erleichtern oder neue Funktionen zu ermöglichen.  Ein
517 Nebeneffekt hiervon ist, dass das LilyPond-Übersetzerprogramm nicht
518 mehr mit älteren Eingabedateien kompatibel sein kann.  Um dies
519 zu umgehen, kann @command{convert-ly} benutzt werden, welches die
520 meisten der Syntaxänderungen korrigieren kann.
521
522 Das Programm benötigt eine @code{\version}-Information in der
523 Eingabedatei, um zu wissen, von welcher Version konvertiert werden
524 soll.  In den meisten Fällen genügt es, den Befehl
525
526 @example
527 convert-ly -e meineDatei.ly
528 @end example
529
530 @noindent
531 auszuführen.
532
533 Damit wird @code{meineDatei.ly} direkt aktualisiert und die
534 Originaldatei unter @code{meineDatei.ly~} gespeichert.
535
536 Alternativ kann man der aktualisierten Datei auch einen anderen
537 Namen geben, in welchem Fall die Originaldatei unverändert
538 gelassen wird.  Das geht mit dem Befehl
539
540 @example
541 convert-ly meineDatei.ly > meineneueDatei.ly
542 @end example
543
544 Das Programm zeigt die Versionsnummern an, für die Konvertierungen
545 vorgenommen wurden.  Wenn keine Versionsnummern angezeigt werden,
546 ist die Datei schon aktuell.
547
548
549 MacOS@tie{}X-Benutzer können diesen Befehl im Menu unter
550 @code{Compile > Update syntax} finden.
551
552 Benutzer unter Windows müssen diesen Befehl auf der Eingabeaufforderung
553 schreiben, welche man üblicherweise unter dem Menüeintrag
554 @code{Start > Alle Programme > Zubehör > Eingabeaufforderung} zu
555 finden ist.
556
557
558 @menu
559 * Optionen von convert-ly auf der Kommandozeile::
560 * Probleme mit convert-ly::
561 @end menu
562
563
564 @node Optionen von convert-ly auf der Kommandozeile
565 @subsection Optionen von @command{convert-ly} auf der Kommandozeile
566 @translationof Command line options for convert-ly
567
568 @command{convert-ly} konvertiert immer bis zur letzten Syntaxänderung,
569 die es beherrscht.  Das heißt, dass die neue @code{version}-Nummer
570 in der Datei überlicherweise etwas niedriger ist als die
571 Version von @command{convert-ly}.
572
573 Die allgemeine Syntax des Programms lautet:
574
575 @example
576 convert-ly [@var{Option}]@dots{} @var{Dateiname}@dots{}
577 @end example
578
579 Folgende Optionen sind möglich:
580
581 @table @code
582 @item -e,--edit
583 Führt die Aktualisierung direkt in der Datei durch, die Datei wird
584 dabei verändert.
585
586 @item -f,--from=@var{von-Versionsnummer}
587 Setze die Version, ab welcher konvertiert werden soll.  Wenn diese
588 Option nicht gesetzt ist, versucht @command{convert-ly}, die
589 Version auf Grundlage von @code{\version} zu raten.
590 Beispiel: @code{--from=2.10.25}
591
592 @item -n,--no-version
593 Normalerweise fügt @command{convert-ly} eine @code{\version}-Zeile
594 zur Ausgabe hinzu.  Mit dieser Option kann das unterdrückt werden.
595
596 @item -s, --show-rules
597 Zeige alle bekannten Konversionsregeln und beende.
598
599 @item --to=@var{bis-Versionsnummer}
600 Hiermit kann das Ziel der Konversion gesetzt werden.  Standard ist
601 die neueste mögliche Version. Beispiel: @code{--to=2.12.2}
602
603 @item -h, --help
604 Benutzerhilfe ausgeben.
605 @end table
606
607 Um LilyPond-Fragmente in texinfo-Dateien zu aktualisieren, gilt
608 der Befehl:
609
610 @example
611 convert-ly --from=... --to=... --no-version *.itely
612 @end example
613
614 Um die Änderungen der LilyPond-Syntax zwischen bestimmten Versionen
615 zu sehen, kann der Befehl
616
617 @example
618 convert-ly --from=... --to=... -s
619 @end example
620
621 @noindent
622 benutzt werden.
623
624 Viele Dateien können auf einmal aktualisiert werden, indem
625 @code{convert-ly} mit den üblichen UNIX-Befehlen kombiniert
626 wird.  Das folgende Beispiel aktualisiert alle @code{.ly}-Dateien
627 im aktuellen Verzeichnis:
628
629 @example
630 for f in *.ly; do convert-ly -e $f; done;
631 @end example
632
633
634
635 @node Probleme mit convert-ly
636 @subsection Probleme mit @code{convert-ly}
637 @translationof Problems with convert-ly
638
639 Wenn convert-ly unter Windows auf der Eingabeaufforderung mit einer
640 Datei benutzt wird, deren Name oder Pfad Leerzeichen enthält, muss
641 der gesamte Dateipfad mit drei (!) Anführungszeichen umgeben werden:
642
643 @example
644 convert-ly """D:/My Scores/Ode.ly""" > """D:/My Scores/new Ode.ly"""
645 @end example
646
647 Nicht alle Änderungen der Syntax können konvertiert werden.  Nur
648 eine Ausgabeoption kann angegeben werden.  Scheme- und
649 LilyPond-Scheme-Code wird sehr unwahrscheinlich korrekt aktualisiert,
650 hier ist meistens Nacharbeit erforderlich.
651
652 @verbatim
653 Hier eine Liste einiger Befehle, die convert-ly nicht konvertieren kann.
654
655 Diese Liste ist in Form von Fehlermeldungen, denn convert-ly
656 ist so strukturiert, dass nicht alle benötigten Änderungen
657 implementiert werden können.  Es handelt sich also eher um eine
658 Wunschliste zur Referenz.
659
660 1.6->2.0:
661  Bezifferter Bass wird nicht immer korrekt konvertiert, besonders
662  Befehle wie {< >}.  Mats Kommentar hierzu:
663     Um convert-ly korrekt ausführen zu können, müssen alle Vorkommen
664     von '{<' in etwas beliebiges wie '{#' und genauso '>}' in '&}'
665     geändert werden.  Nach der Konversion können sie dann zurück
666     in '{ <' und '> }' verwandelt werden
667  Nicht alle Textbeschriftungen werden richtig konvertiert.  In der
668  alten Syntax  konnten Beschriftungsbefehle mit Klammern gruppiert
669  werden, etwa
670    -#'((bold italic) "string")
671    This will incorrectly be converted into
672    -\markup{{\bold italic} "string"}
673    instead of the correct
674    -\markup{\bold \italic "string"}
675 2.0->2.2:
676  \partcombine wird nicht konvertiert
677  \addlyrics => \lyricsto wird nicht konvertiert, dadurch kompilieren
678  manche Dateien mit mehreren Strophen nicht.
679 2.0->2.4:
680  \magnify wird nicht nach \fontsize konvertiert.
681     - \magnify #m => \fontsize #f, where f = 6ln(m)/ln(2)
682  remove-tag wird nicht verändert.
683     - \applyMusic #(remove-tag '. . .) => \keepWithTag #'. . .
684  first-page-number wird nicht geändert.
685     - first-page-number no => print-first-page-number = ##f
686  Zeilenumbrüche im \header-Feld werde nicht konvertiert.
687     - \\\\  als Zeilenumbruch in \header{...} => \markup \center-align <
688       "First Line" "Second Line" >
689  Crescendo- und Decrescendo-Enden werden nicht konvertiert.
690     - \rced => \!
691     - \rc => \!
692 2.2->2.4:
693  \turnOff (in \set Staff.VoltaBracket = \turnOff eingesetzt) wird nicht korrekt behandelt.
694 2.4.2->2.5.9
695  \markup{ \center-align <{ ... }> } sollte umgewandelt werden in:
696  \markup{ \center-align {\line { ... }} }
697  aber im Moment fehlt \line.
698 2.4->2.6
699  Besondere LaTeX-Zeichen wie $~$ im Text werden nicht nach UTF(
700  konvertiert.
701 2.8
702  \score{} muss jetzt mit einem musikalischen Ausdruck beginnen.
703  Alles andere (insbesondere \header{}) darf erst nach den Noten
704  kommen.
705 @end verbatim
706
707
708
709 @node Fehler melden
710 @section Fehler melden
711 @translationof Reporting bugs
712
713
714 @cindex Fehler
715 @cindex Fehler melden
716
717 Wenn Sie eine Datei haben, die zu einem Absturz von LilyPond oder zu einer
718 fehlerhaften Ausgabe führt, so ist dies ein @q{Bug}.  Die List der aktuell
719 bekannten derartigen Fehler findet sich in unserem @q{Google Bug Tracker}:
720
721 @uref{http://code.google.com/p/lilypond/issues/list}
722
723 Wenn Sie einen Fehler gefunden haben, der noch nicht aufgelistet ist, melden
724 Sie dies bitte anhand der Anweisungen auf der Seite
725
726 @uref{http://lilypond.org/web/devel/participating/bugs}
727
728 Wenn Sie Beispieldateien für den Fehler erstellen, versuchen Sie bitte, die
729 Datei möglichst minimal zu halten und nur jenen LilyPond Code aufzunehmen,
730 der auch wirklich für den Fehler verantwortlich ist.  Meldungen mit
731 Beispieldateien, die nicht minimal sind, können wir meist aus Zeitgründen
732 nicht effektiv bearbeiten.
733