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