]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/cs/usage/running.itely
Imported Upstream version 2.19.45
[lilypond.git] / Documentation / cs / usage / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: cs -*-
2
3 @ignore
4     Translation of GIT committish: 0764a50d470cab82ca29da30298dacd333d3da12
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  For details, see the Contributors'
8     Guide, node Updating translation committishes..
9 @end ignore
10
11 @c \version "2.19.21"
12
13 @c Translators: Pavel Fric
14
15 @node Spouštíme lilypond
16 @chapter Spouštíme @command{lilypond}
17 @translationof Running lilypond
18
19 Dieses Kapitel behandelt die technischen Details, wie Lilypond ausgeführt werden kann.
20
21
22 @menu
23 * Běžné používání programu::
24 * Použití v příkazovém řádku::
25 * Chybová hlášení::
26 * Častá chybová hlášení::
27 @end menu
28
29 @node Běžné používání programu
30 @section Běžné používání programu
31 @translationof Normal usage
32
33 Die meisten Benutzer führen LilyPond von einer graphischen Benutzeroberfläche
34 aus. Siehe @rlearning{Übung}, falls Sie dies nicht bereits getan haben.  Wenn
35 Sie einen alternativen Editor für Ihre LilyPond-Dateien verwenden, lesen Sie
36 bitte die Dokumentation dieses Editors.
37
38
39 @node Použití v příkazovém řádku
40 @section Použití v příkazovém řádku
41 @translationof Command-line usage
42
43 Dieser Abschnitt enthält zusätzliche Informationen, wie Sie LilyPond
44 von der Kommandozeile ausführen können.  Dies kann erforderlich sein,
45 um etwa zusätzliche Optionen an das Programm zu übergeben.  Außerdem
46 sind einige Zusatzprogramme (wie etwa @code{midi2ly}) nur von der
47 Kommandozeile verfügbar.
48
49 Unter @q{Kommandozeile} verstehen wir die Kommandozeile des jeweiligen
50 Betriebssystems. Windows Benutzern ist sie vielleicht eher unter den
51 englischen Begriffen @q{DOS shell} oder @q{command shell} bekannt.
52 MacOS@tie{}X Benutzer kennen sie eher unter @q{Terminal} oder @q{Konsole}.
53 Einige zusätzliche Einrichtungsarbeiten werden unter MacOS@tie{}X,
54 siehe @rweb{MacOS X}.
55
56 Wie die Kommandozeile im jeweiligen Betriebssystem benutzt werden kann,
57 soll in diesem Handbuch nicht näher beschrieben werden. Sehen Sie bitte
58 im Handbuch Ihres Betriebssystems nach oder informieren Sie sich im
59 Internet, wenn Sie mit der Kommandozeile nicht vertraut sind.
60
61
62 @menu
63 * Vyvolání lilypondu::
64 * Volby lilypondu v příkazovém řádku::
65 * Proměnné prostředí::
66 * LilyPond v žaláři chroot::
67 @end menu
68
69 @node Vyvolání lilypond
70 @unnumberedsubsec Vyvolání @command{lilypond}
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 eine @code{\book}-Umgebung 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 Dateinamen
102 und der Zahl eingefügt.  Eine Lilypond-Datei @file{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 @unnumberedsubsubsec Häufige Kommandozeilenbefehle
118
119 Wenn Ihre Kommandozeile normale Weiterleitungen unterstützt, können
120 Sie es nützlich finden, mit folgenden Befehlen die Ausgabe der
121 Kommandozeile in eine Datei zu leiten:
122
123 @itemize
124
125 @item
126 @code{lilypond file.ly 1>stdout.log} um normale Ausgabe zu erhalten
127 @item
128 @code{lilypond file.ly 2>stderr.log} um chybová hlášení zu erhalten
129
130 @item
131 @code{lilypond file.ly &>all.log} um alle Meldungen zu erhalten
132
133 @end itemize
134
135 Wenden Sie sich an die Dokumentation für Ihre Kommandozeile, um
136 zu sehen, ob derartige Optionen unterstützt werden oder die Syntax
137 unterschiedlich ist.  Beachten Sie, dass es sich hier um
138 reine Verwaltungsprogramme handelt, die nichts mit LilyPond zu tun
139 haben.
140
141
142 @node Volby v příkazovém řádku pro lilypond
143 @unnumberedsubsec Volby v příkazovém řádku pro @command{lilypond}
144 @translationof Command line options for lilypond
145
146 Die folgenden Kommandozeilenoptionen werden von @command{lilypond} unterstützt:
147
148 @cindex @command{lilypond} auf der Kommandozeile
149 @cindex Kommandozeile, @command{lilypond} aufrufen
150 @cindex Optionen, Kommandozeile
151 @cindex Terminal, @command{lilypond} aufrufen
152
153 @table @code
154
155 @item -e, --evaluate=@var{expr}
156 Wertet den Scheme-Ausdruck @var{expr} aus, bevor die @file{.ly} Dateien
157 gelesen und interpretiert werden.
158 Die @code{-e} Option kann auch mehrfach angegeben werden, die Ausdrücke
159 werden nacheinander ausgewertet.
160
161 Da der Ausdruck im @code{guile-user} Modul ausgewertet wird, ist bei der
162 Definitionen innerhalb von @var{expr} folgendes Vorgehen nötig. An der
163 Kommandozeile wird z.B. @code{a} im @code{guile-user} Modul definiert:
164
165 @example
166 lilypond -e '(define-public a 42)'
167 @end example
168
169 @noindent
170 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:
171
172 @example
173 #(use-modules (guile-user))
174 @end example
175
176
177 @item -f, --format=@var{Format}
178 Bestimmt das Ausgabeformat. Mögliche Werte von @var{Format} sind
179 @code{svg}, @code{ps}, @code{pdf} und @code{png}.
180
181 Beispiel: @code{lilypond -fpng @var{Dateiname}.ly}
182
183
184
185 @item -d, --define-default=@var{Variable}=@var{Wert}
186 Damit wird die interne Programmoption @var{Variable} auf den Scheme-Wert
187 @var{Wert} gesetzt. Wird kein @var{Wert} angegeben, so wird @var{#t} benutzt.
188 Um eine Option auszuschalten, kann der Präfix @code{no-} dem Namen
189 @var{Variable} der Variable vorangestellt werden. So ist etwa
190
191 @cindex Point and Click, Kommandozeile
192
193 @example
194 -dno-point-and-click
195 @end example
196
197 @noindent
198 dasselbe wie
199 @example
200 -dpoint-and-click='#f'
201 @end example
202
203 Hier sind ein paar interessante Optionen:
204
205 @cindex Hilfe, Kommandozeile
206
207 @table @samp
208 @item help
209 Die Ausführung von @code{lilypond -dhelp} zeigt alle verfügbaren @code{-d}
210 Optionen.
211
212 @cindex Papierformat, Kommandozeile
213
214 @item paper-size
215 Setzt das Standard-Papierformat,
216 @example
217 -dpaper-size=\"letter\"
218 @end example
219
220 @noindent
221 Die Zeichenkette, die das Format angibt, muss in Anführungszeichen mit Backslash
222 ( @code{\"} ) stehen.
223
224 @cindex sicher, Kommandozeile
225 @cindex safe, Kommandozeile
226
227 @item safe
228 Vertraut der @file{.ly} Datei nicht.
229
230 Wenn LilyPond über einen Webserver verfügbar gemacht wird, @b{MUSS} unbedingt
231 eine die Optionen @code{--safe} oder @code{--jail} angegeben werden.
232 Die @code{--safe} Option verhindert, dass in der @file{.ly}-Datei angegebener
233 Scheme-Code das System gefährden kann, wie etwa in folgendem Beispiel:
234
235 @quotation
236 @verbatim
237 #(system "rm -rf /")
238 {
239   c4^$(ly:gulp-file "/etc/passwd")
240 }
241 @end verbatim
242 @end quotation
243
244 Mit der @code{-dsafe} Option werden alle Scheme-Ausdrücke einem speziellen
245 sicheren Modus ausgewertet. Dieser Modus ist vom GUILE @file{safe-r5rs} Modul
246 abgeleitet und fügt noch zahlreiche weitere erlaubte Funktionen der
247 LilyPond Programm-Schnittstelle hinzu. Diese Funktionen sind in
248 @file{scm/safe-lily.scm} angegeben.
249
250 Zusätzliche verbietet der sichere Modus auch @code{\include} Befehle.
251
252 Im sicheren Modus ist es nicht möglich, LilyPond-Variablen nach Scheme
253 zu exportieren.
254
255 @code{-dsafe} erkennt jedoch @emph{KEINE} Überbeanspruchung der verfügbaren
256 Ressourcen. In diesem Modus ist es also trotzdem möglich, dass LilyPond in einer
257 Endlosschleife hängt, z.B. wenn zyklische Datenstrukturen an das Backend
258 übergeben werden. Wenn LilyPond also auf einem öffentlich zugänglichen
259 Webserver verfügbar gemacht wird, sollte der Prozess sowohl in der CPU-
260 als auch in der Speichernutzung limitiert werden.
261
262 Der sichere Modus verhindert auch, dass zahlreiche nützliche
263 Musikfragmente von LilyPond verarbeitet werden. Die @code{--jail} Option ist
264 eine sicherere Alternative, benötigt allerdings auch mehr Aufwand zur
265 Einrichtung.
266
267 @cindex Ausgabeformat, Definition von
268
269 @item backend
270 Gibt an, welches Ausgabeformat das LilyPond Backend benutzt. Mögliche Werte
271 für diese Option sind:
272
273 @table @code
274 @item ps
275 PostScript-Ausgabeformat.
276
277 @cindex PostScript Ausgabeformat
278
279 Postscript-Dateien enthalten auch TTF-, Type1- und OTF-Schriften. Allerdings
280 wird die gesamte Schriftart eingefügt und nicht nur die benötigten Zeichen.
281 Vor allem wenn nicht-westliche Zeichensätze benutzt werden, kann dies zu sehr
282 großen Dateien führen.
283
284 @cindex PostScript Ausgabeformat
285 @cindex EPS (encapsulated PostScript)
286
287 @item eps
288 Erzeugt @q{encapsulated PostScript} (EPS). Jede Seite (oder jedes System) wird
289 als eigene @file{EPS}-Datei ausgegeben, inklusive Schriftarten. Außerdem wird
290 eine Datei mit allen Seiten (bzw. Systemen) und Schriftarten erzeugt.
291
292 Dies ist die Standardeinstellung von @command{lilypond-book}.
293
294 @cindex SVG (scalable vector graphics)
295 @cindex Vektorgraphik (SVG)
296
297 @item svg
298
299 SVG-Ausgabe (Scalable Vector Graphics).
300
301 Hiermit wird eine einzelne SVG-Datei ohne eingebundene Schriften
302 für jede Seite der Partitur erstellt.  Es wird empfohlen, Century
303 Schoolbook-Schriftarten zu installieren, die auch in der LilyPond-Installation
304 enthalten sind, um optimales Rendern zu erhalten.  Unter UNIX können
305 diese Schriftarten einfach aus dem LilyPond-Verzeichnis (normalerweise
306 @file{/usr/share/lilypond/@/VERSION/fonts/otf/}) nach @file{~/.fonts}
307 kopiert werden.  Die SVG-Ausgabe sollte mit allen SVG-Editoren oder
308 Betrachtungsprogrammen kompatibel sein.
309
310 @cindex Scheme-dump
311
312 @item scm
313 gibt die rohen Scheme-basierenden Zeichenbefehle aus, wie sie intern von
314 LilyPond benutzt werden.
315
316 @cindex Scheme dump
317
318 @item null
319 Keine Partitur wird ausgegeben, hat gleichen Effekt wie @code{-dno-print-pages}.
320
321 @end table
322
323 Beispiel: @code{lilypond -dbackend=svg @var{Dateiname}.ly}
324
325 @cindex Vorschau
326
327 @item preview
328 Erzeugt eine Ausgabedatei, die nur die Titelzeilen und das erste System
329 enthält.  Wenn @code{\bookpart}-Umgebungen benutzt werden, erscheinen die
330 Titel und ersten Systeme jedes @code{\bookpart}-Abschnitts in der Datei.
331 Die Backends @code{ps}, @code{eps} und @code{svg} unterstützen diese Option.
332
333 @item print-pages
334 Erzeugt vollständige Seiten (Standardeinstellung).  @code{-dno-print-pages}
335 ist in Verbindung mit @code{-dpreview} nützlich.
336
337 @end table
338
339
340
341 @item -h, --help
342 Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen.
343
344 @item -H, --header=@var{FELD}
345 Gibt den Inhalt eines Feldes aus dem @code{\header}-Block in die Datei
346 @file{Dateiname.@var{FELD}} aus.
347
348 @item --include, -I=@var{Verzeichnis}
349 Fügt @var{Verzeichnis} zur Liste der Suchpfade hinzu.
350
351 @cindex Dateisuche
352 @cindex Suchpfad
353
354 Mehrere -I-Optionen können angegeben werden.  Die Suche beginnt mit dem
355 ersten definierten Verzeichnis und setzt in den weiteren Verzeichnissen
356 fort, wenn die gesuchte Datei nicht in dem Verzeichnis gefunden wird.
357
358 @item -i, --init=@var{Initialisierungsdatei}
359 Benutzt @var{Initialisierungsdatei} zur gesamten Programminitialisierung. Der
360 Standardwert ist @file{init.ly}.
361
362 @cindex Verzeichnis, Ausgabe speichern in
363 @cindex Ausgabedateiname
364
365 @item -o, --output=@var{DATEI}
366 Schreibt das Ergebnis der Verarbeitung mit LilyPond in die Ausgabedatei
367 @var{DATEI}.  Wenn ein Verzeichnis mit dem Namen existiert, werden die Ausgabedateien
368 in dieses Verzeichnis gespeichert, wobei der Dateiname der Eingabedatei
369 benutzt wird.  Die entsprechende Dateinamenserweiterung wird angehängt (z.B.
370 @code{.pdf} für pdf).
371
372 @cindex PostScript-Ausgabe
373
374 @item --ps
375 Erzeugt PostScript.
376
377 @cindex PNG-Ausgabe
378 @cindex Portable Network Graphics (PNG)
379
380 @item --png
381 Erzeugt eine Grafik-Datei im PNG-Format von jeder Seite. Diese Option
382 impliziert auch @code{--ps}. Die Auflösung in DPI der Grafik kann festgelegt
383 werden durch
384 @example
385 -dresolution=110
386 @end example
387
388 @cindex PDF-Ausgabe
389 @cindex Portable Document Format (PDF)
390
391 @item --pdf
392 Erzeugt PDF-Dateien. Dies impliziert @code{--ps}.
393
394 @item -j, --jail=@var{Benutzer},@var{Gruppe},@var{Jail-Verzeichnis},@var{Arbeitsverzeichnis}
395 Führt @command{lilypond} in einem chroot-Jail aus.
396
397 Die @code{--jail} Option ist eine flexiblere Alternative zu @code{--safe}, wenn
398 LilyPond über das Internet verfügbar gemacht wird oder LilyPond-Quelldateien
399 von Dritten automatisch verarbeitet werden.
400
401 Sie funktioniert dergestalt, dass das Wurzelverzeichnis von
402 @command{lilypond} auf @var{Jail-Verzeichnis} gesetzt wird, bevor die
403 tatsächliche Kompilierung der @file{.ly}-Datei beginnt. Der Benutzer und die Gruppe
404 werden auf die angegebenen Werte gesetzt und das aktuelle Arbeitsverzeichnis
405 wird ebenfalls auf den angegebenen Wert @var{Arbeitsverzeichnis} gesetzt.
406 Diese Einstellungen garantieren (zumindest in der Theorie), dass es nicht
407 möglich ist, aus dem Jail auszubrechen. Damit @code{--jail} funktioniert, muss
408 @command{lilypond} allerdings als root ausgeführt werden, was normalerweise
409 auf sichere Art mit dem Kommando @command{sudo} erreicht werden kann.
410
411 Das Jail-Verzeichnis zu erstellen ist etwas heikel, da LilyPond alle zur
412 Ausführung nötigen Bibliotheken und Dateien @emph{innerhalb des
413 Jail-Verzeichnisses} finden muss. Ein typisches Setup besteht aus folgenden
414 Punkten:
415
416 @table @asis
417 @item Erstellung eines getrennten Dateisystems
418 Ein eigenes Dateisystem muss für LilyPond erstellt werden, sodass es mit
419 sicheren Einstellungen wie @code{noexec}, @code{nodev} und @code{nosuid}
420 eingebunden werden kann. Damit ist es unmöglich, Programme von diesem
421 Dateisystem auszuführen oder direkt auf eine Hardware-Schnittstelle
422 zuzugreifen. Wenn Sie keine eigene Partition erstellen möchten, können Sie
423 auch eine Datei der entsprechenden Größe erstellen und sie als @q{loop}-Gerät
424 einbinden. Ein getrenntes Dateisystem garantiert auch, dass LilyPond nicht
425 mehr Festplattenspeicher benutzt als erlaubt.
426
427 @item Erstellung eines eigenen Benutzerkontos
428 Es sollte ein eigener Benutzer und eine eigene Gruppe (z. B.
429 @code{lily}/@code{lily}) mit geringen Rechten für die Ausführung von LilyPond
430 innerhalb des Jails benutzt werden. Nur ein einziges Verzeichnis des Jails sollte
431 für den Benutzer schreibbar sein und als @var{Arbeitsverzeichnis} an
432 @code{lilypond} übergeben werden.
433
434 @item Einrichtung des Jails
435 LilyPond muss zahlreiche Dateien für die Ausführung einlesen. All diese
436 Dateien müssen in das Jail-Verzeichnis kopiert werden (mit denselben Pfaden
437 wie im tatsächlichen Wurzel-Dateisystem). Die gesamte LilyPond-Installation
438 (typischerweise @file{/usr/share/lilypond}) sollte kopiert werden.
439
440 Falls Probleme auftreten, ist es am einfachsten, Lilypond mittels
441 @command{strace} zu starten, wodurch Sie relativ leicht feststellen können,
442 welche Dateien im Jail noch fehlen.
443
444 @item Ausführung von LilyPond
445 In einem mit @code{noexec} eingebundenen Jail ist es nicht möglich, externe
446 Programme auszuführen. Daher muss LilyPond auf eine Art gestartet werden,
447 die keine weitere Ausführung von Programmen benötigt. Wie bereits erwähnt
448 muss LilyPond mit Administrator-Rechten gestartet werden (die es allerdings
449 sofort wieder abgibt), beispielsweise mittels @command{sudo}. Außerdem
450 ist es eine gute Idee, die LilyPond zur Verfügung stehende CPU-Zeit zu
451 limitieren (z. B. mit @command{ulimit -t}) und -- falls das Betriebssystem
452 dies unterstützt -- auch den zur Verfügung stehenden Hauptspeicher.
453 @end table
454
455
456 @item -v, --version
457 Gibt die Versionsnummer aus.
458
459 @item -V, --verbose
460 Gibt ausführliche informative Meldungen aus: Zeigt die vollen Dateipfade
461 aller gelesenen Dateien sowie Informationen über die Laufzeit.
462
463 @item -w, --warranty
464 Zeigt die Garantiebedingungen an, unter denen GNU LilyPond steht. (Es besteht
465 @strong{KEINERLEI GARANTIE}!)
466 @end table
467
468
469 @node Proměnné prostředí
470 @unnumberedsubsec Proměnné prostředí
471 @translationof Environment variables
472
473 @cindex LANG
474 @cindex LILYPOND_DATADIR
475 @cindex Proměnné, prostředí
476 @cindex Proměnné prostředí
477
478 @command{lilypond} erkennt und benützt die folgenden proměnné prostředí:
479 @table @code
480 @item LILYPOND_DATADIR
481 Diese Variable gibt das Verzeichnis an, wo Lilypond seine eigenen Dateien,
482 Meldungen und Übersetzungen finden kann.  Dieses Verzeichnis sollte
483 Unterverzeichnisse @file{ly/}, @file{ps/}, @file{tex/}, etc. beinhalten.
484
485 @item LANG
486 Gibt die Sprache an, in der Warnungen und chybová hlášení ausgegeben werden.
487
488 @item LILYPOND_GC_YIELD
489 Mit dieser Variable (mit Werten zwischen 0 und 100) kann die Feinabstimmung
490 zwischen dem Bedarf an Hauptspeicher und Rechenleistung bei der Ausführung
491 von LilyPond durchgeführt werden.  Bei höheren Werten benutzt LilyPond
492 mehr Hauptspeicher, benötigt aber weniger Prozessor-Leistung.  Bei
493 niedrigeren Werten wird mehr Prozessor-Zeit, dafür weniger Hauptspeicher
494 benötigt.  Voreinstellung ist ein Wert von @code{70}.
495
496 @end table
497
498
499
500 @node LilyPond v žaláři chroot
501 @unnumberedsubsec LilyPond v žaláři chroot
502 @translationof LilyPond in chroot jail
503
504 Einen Server einzurichten, der LilyPond in einem chroot-Kerker bedient, ist
505 recht kompliziert.  Die einzelnen Schritten finden sich unten aufgeliestet.
506 Beispiele sind für Ubuntu Linux und erfordern evtl. die Benutzung von
507 @code{sudo} an den entsprechenden Stellen.
508
509 @itemize
510
511 @item Installieren Sie die nötigen Pakete: LilyPond, GhostScript und ImageMagick.
512
513 @item Erstellen Sie einen neuen Benutzer mit dem Namen @code{lily}:
514
515 @example
516 adduser lily
517 @end example
518
519 @noindent
520 Hierdurch wird auch eine Gruppe @code{lily} und ein Heimat-Ordner
521 @code{/home/lily} für den neuen Benutzer erstellt.
522
523 @item Im Heimat-Ordner des Benutzers @code{lily} erstellen Sie eine Datei, die als
524 eigenes Dateisystem eingesetzt wird:
525
526 @example
527 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
528 @end example
529
530 @noindent
531 In diesem Beispiel wird eine 200-MB-Datei als Kerker-Dateisystem erstellt.
532
533 @item Erstellen Sie ein loop device, erstellen Sie ein Dateisystem und
534 mounten Sie es, dann erstellen Sie dort einen Ordner, in dem der Benutzer
535 @code{lily} Schreibrechte hat:
536
537 @example
538 mkdir /mnt/lilyloop
539 losetup /dev/loop0 /home/lily/loopfile
540 mkfs -t ext3 /dev/loop0 200000
541 mount -t ext3 /dev/loop0 /mnt/lilyloop
542 mkdir /mnt/lilyloop/lilyhome
543 chown lily /mnt/lilyloop/lilyhome
544 @end example
545
546 @item In der Konfiguration des Servers ist der Kerker (JAIL) @code{/mnt/lilyloop}
547 und das Verzeichnis (DIR) @code{/lilyhome}.
548
549 @item Erstellen Sie einen großen Verzeichnisbaum in dem Kerker, indem Sie die
550 notwendigen Dateien dorthin kopiert, wie das Beispielskript unten zeigt.
551
552 Sie könne @code{sed} benutzen, um die notwendigen Kopierbefehle für ein
553 bestimmtes Programm zu erstellen:
554
555 @example
556 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/;  \
557   do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\&  \
558     cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p  \
559       \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
560 @end example
561
562 @end itemize
563
564 @subheading Beispiel-Skript für 32-bit Ubuntu 8.04
565
566 @example
567 #!/bin/sh
568 ## defaults set here
569
570 username=lily
571 home=/home
572 loopdevice=/dev/loop0
573 jaildir=/mnt/lilyloop
574 # the prefix (without the leading slash!)
575 lilyprefix=usr/local
576 # the directory where lilypond is installed on the system
577 lilydir=/$lilyprefix/lilypond/
578
579 userhome=$home/$username
580 loopfile=$userhome/loopfile
581 adduser $username
582 dd if=/dev/zero of=$loopfile bs=1k count=200000
583 mkdir $jaildir
584 losetup $loopdevice $loopfile
585 mkfs -t ext3 $loopdevice 200000
586 mount -t ext3 $loopdevice $jaildir
587 mkdir $jaildir/lilyhome
588 chown $username $jaildir/lilyhome
589 cd $jaildir
590
591 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
592 chmod a+w tmp
593
594 cp -r -L $lilydir $lilyprefix
595 cp -L /bin/sh /bin/rm bin
596 cp -L /usr/bin/convert /usr/bin/gs usr/bin
597 cp -L /usr/share/fonts/truetype usr/share/fonts
598
599 # Now the library copying magic
600 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh"  \
601   "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=>  \
602     \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed  \
603       's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/'  \
604         | sed '/.*=>.*/d'; done | sh -s
605
606 # The shared files for ghostscript...
607       cp -L -r /usr/share/ghostscript usr/share
608 # The shared files for ImageMagick
609       cp -L -r /usr/lib/ImageMagick* usr/lib
610
611 ### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
612 ### you should be able to run:
613 ### Note that /$lilyprefix/bin/lilypond is a script, which sets the
614 ### LD_LIBRARY_PATH - this is crucial
615       /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
616 @end example
617
618
619 @node Chybová hlášení
620 @section Chybová hlášení
621 @translationof Error messages
622
623 @cindex error messages
624 @cindex Chybová hlášení
625
626 Während der Verarbeitung einer Dateien können diverse Meldungen an der
627 Kommandozeile auftreten:
628
629 @table @emph
630
631 @item Warnung (Warning)
632 @cindex Warnung
633 Irgendetwas ist verdächtig.  Wenn Sie etwas Ungewöhnliches in Ihrer
634 Datei durchführen, dann werden Sie die Meldung verstehen und können
635 sie gegebenenfalls ignorieren.  Im Normalfall jedoch bedeutet eine
636 Warnung, dass mit Ihrer Datei etwas nicht stimmt, LilyPond jedoch
637 trotzdem versucht, die Datei soweit wie möglich korrekt zu übersetzen.
638
639 @item Fehler (Error)
640 @cindex Fehler
641 Irgendetwas stimmt definitiv nicht.  Der aktuelle Bearbeitungsschritt
642 (Einlesen, Interpretieren oder Formatieren der Datei) wird noch fertig
643 ausgeführt, danach bricht die Bearbeitung aber ab.
644
645 @item Fataler Fehler (Fatal error)
646 @cindex Fataler Fehler
647 Irgendetwas stimmt definitiv nicht und LilyPond kann nicht weiter
648 ausgeführt werden.  Dies ist nur sehr selten der Fall, meist sind
649 die Schriftarten nicht korrekt installiert.
650
651 @item Scheme Fehler (Scheme error)
652 @cindex Fehlerprotokoll, Scheme
653 @cindex Scheme Fehler
654 Fehler, die während der Ausführung von Scheme-Code auftreten, werden
655 vom Scheme-Interpreter aufgefangen und an der Kommandozeile ausgegeben.
656 Wenn Sie LilyPond mit der @code{--verbose} Option (auch @code{-V})
657 ausführen, wird der sogenannte @q{Call trace} ausgegeben, der die
658 aufgerufenen Funktionen zur Zeit des Fehlers angibt.
659
660 @item Programmierfehler (Programming error)
661 @cindex Programmierfehler
662 Eine interne Inkonsistenz ist aufgetreten.  Diese chybová hlášení
663 sollen den Programmierern die Fehlersuche erleichtern und
664 können meistens einfach ignoriert werden.  In manchen Fällen werden
665 so viele Meldungen ausgegeben, dass die Lesbarkeit der restliche
666 Ausgabe davon beeinträchtigt wird.
667
668 @item Abgebrochen (core dumped)
669 Dies bezeichnet einen ernsten Programmierfehler, der das Programm
670 zum Absturz gebracht hat.  Solche Fehler werden als kritisch angesehen.
671 Falls daher einer auftritt, senden Sie bitte einen Bug-Report!
672 @end table
673
674 @cindex Chybové hlášení, formát
675 @cindex Formát chybového hlášení
676 Wenn Warnungen oder chybová hlášení mit einer konkreten Stelle in der
677 Eingabedatei verknüpft werden können, dann hat die Meldung die folgende
678 Form:
679
680 @example
681 @var{Dateiname}:@var{Zeile}:@var{Spalte}: @var{Meldung}
682 @var{Fehlerhafte Eingabezeile}
683 @end example
684
685 Ein Zeilenumbruch wird in der fehlerhaften Zeile an jener Stelle eingefügt,
686 wo der Fehler aufgetreten ist.  Zum Beispiel
687
688 @example
689 test.ly:2:19: Fehler: keine gültige Dauer: 5
690   @{ c'4 e'
691              5 g' @}
692 @end example
693
694 Diese Stellen sind LilyPonds Vermutung, wo die Warnung oder der Fehler
695 aufgetreten ist, allerdings treten Warnungen und Fehler ja gerade in
696 unerwarteten Fällen auf.  Manchmal kann Lilypond auch eine fehlerhafte
697 Stelle zwar noch problemlos verarbeiten, ein paar Zeilen später wirkt
698 sich der Fehler aber dann doch noch aus.  In solchen Fällen, wo Sie in
699 der angegebenen Zeile keinen Fehler erkennen, sollten Sie auch die Zeilen
700 oberhalb der angegebenen Stelle genauer unter die Lupe nehmen.
701
702 Mehr Information darüber findet sich in @ref{Častá chybová hlášení,,častých chybových hlášeních}.
703
704
705
706 @node Častá chybová hlášení
707 @section Častá chybová hlášení
708 @translationof Common errors
709
710 Chybová hlášení, die unten beschrieben werden, treten of auf,
711 es ist jedoch nicht immer einfach, die Urache zu finden.  Wenn
712 der Fehler einmal verstanden ist, kann er einfach behoben werden.
713
714
715 @menu
716 * Noty ubíhají pryč ze strany::
717 * Ein zusätzliches System erscheint::
718 * Zřejmá chyba v @code{../ly/init.ly}::
719 * Chybové hlášení Nespojená proměnná %::
720 * Chybové hlášení  FT_Get_Glyph_Name::
721 * Varování: staff affinities by měly jen klesat::
722 @end menu
723
724 @node Noty ubíhají pryč ze strany
725 @unnumberedsubsec Noty ubíhají pryč ze strany
726 @translationof Music runs off the page
727
728 Noten, die rechts aus der Seite herauslaufen oder sehr komprimiert
729 aussehen, liegen in fast allen Fällen an einer falschen Notendauer
730 einer Note, die dazu fürt, dass die letzte Note im Takt über die
731 Taktgrenze hinwegdauert.  Es ist nicht falsch, wenn die letzte
732 Note eines Taktes über den Takt hinausdauert, weil einfach angenommen
733 wird, dass sie im nächsten Takt fortgesetzt wird.  Aber wenn eine
734 längere Sequenz dieser überhängenden Noten auftritt, können die
735 Noten sehr gedrängt aussehen oder über den Seitenrand fließen, weil
736 die automatische Zeilenumbruchsfunktion einen Umbruch nur am Ende
737 eines vollständigen Taktes einfügen kann, also wenn alle Noten
738 zum Ende des Taktstriches auch wirklich aufhören.
739
740 @warning{Eine falsche Dauer kann dazu führen, dass Zeilenumbrüche
741 nicht möglich sein und die Zeile entweder sehr gedrängt dargestllt
742 wird oder über den Seitenrand fließt.}
743
744 Die falsche Dauer kann einfach gefunden werden, wenn Taktstrichüberprüfung
745 eingesetzt wird, siehe @ruser{Takt- und Taktzahlüberprüfung}.
746
747 If you actually intend to have a series of such carry-over measures
748 you will need to insert an invisible bar line where you want the
749 line to break.  For details, see @ruser{Taktstriche}.
750
751
752 @node Ein zusätzliches System erscheint
753 @unnumberedsubsec Ein zusätzliches System erscheint
754 @translationof An extra staff appears
755
756 Wenn Kontext nicht explizit mit @code{\new} oder
757 @code{\context} erstellt werden, werden sie vom Programm erstellt,
758 sobald ein Befehl angetroffen wird, der im aktuellen Kontext nicht
759 funktioniert.  In einfachen Partituren ist diese automatische
760 Erstellung sehr nützlich und die meisten Beispiele der LilyPond-Handbücher
761 benutzen diese Schreiberleicherterung.  Manchmal jedoch kann es
762 vorkommen, dass durch die automatische Erstellung von Systemen aufeinmal
763 unerwartete Notensysteme erstellt werden.  Beispielsweise könnte man
764 annehmen, dass folgendes Beispiel alle Notenköpfe in dem Notensystem
765 rot macht, aber als Resultat hat man zwei Systeme, während die
766 Notenköpfe immernoch schwarz im unteren System erscheinen.
767
768 @lilypond[quote,verbatim,fragment]
769 \override Staff.NoteHead.color = #red
770 \new Staff { a' }
771 @end lilypond
772
773 Das liegt daran, dass kein @code{Staff}-Kontext existiert, wenn
774 der @code{\override}-Befehl verarbeitet wird, sodass ein System
775 für diesen Befehl erstellt wird.  Dann aber erstellt @code{\new Staff}
776 noch ein zusätzliches System, wo die Noten gesetzt werden.  Die
777 richtige Schreibweise wäre:
778
779 @lilypond[quote,verbatim]
780 \new Staff {
781   \override Staff.NoteHead.color = #red
782   a'
783 }
784 @end lilypond
785
786 Ein zweites Beispiel zeigt, dass ein @code{\relative}-Befehl innerhalb
787 von @code{\repeat} zwei Systeme erstellt, wobei der zweite etwas verschoben
788 ist.  Das liegt daran, dass @code{\repeat} zwei @code{\relative}-Umgebungen
789 erstellt, die jede implizit einen @code{Staff}- und @code{Voice}-Kontext
790 erstellen.
791
792 @lilypond[quote,verbatim]
793 \repeat unfold 2 {
794   \relative { c'4 d e f }
795 }
796 @end lilypond
797
798 Indem man die @code{Voice}-Kontexte explizit erstellt, kann das Problem
799 umgangen werden.
800
801 @lilypond[quote,verbatim]
802 \new Voice {
803   \repeat unfold 2 {
804     \relative { c'4 d e f }
805   }
806 }
807 @end lilypond
808
809
810 @node Zřejmá chyba v @code{../ly/init.ly}
811 @unnumberedsubsec Zřejmá chyba v @code{../ly/init.ly}
812 @translationof Apparent error in @code{../ly/init.ly}
813
814 Verschiedene seltsame chybová hlášení können über Syntax-Fehler in
815 @file{../ly/init.ly} auftauchen, wenn die Eingabedatei nicht richtig
816 formuliert ist, wenn sie etwa nicht richtig passende Klammerpaare
817 oder Anführungszeichen enthält.
818
819 Der üblichste Fehler ist das Fehlen einer geschweiften Klammer
820 (@code{@}}) am Ende der @code{score}-Umbgebung.  Die Lösung ist hier
821 klar: überprüfen Sie, ob die @code{score}-Umgebung richtig beendet
822 wurde.  Die richtige Struktur einer Eingabedatei wird beschrieben
823 in @rlearning{Wie eine LilyPond-Eingabe-Datei funktioniert}.
824 Ein Editor, der die Klammerpaare automatisch anzeigt, ist sehr
825 hilfreich, um derartige Fehler zu vermeiden.
826
827 Eine weitere übliche Fehlerquelle ist kein Leerzeichen zwischen der
828 letzten Silbe einer @code{lyrics}-Umgebung und der schließenden
829 Klammer (@code{@}}).  Ohne diese Trennung wird die Klammer als
830 Teil der Silbe gewertet.  Es bietet sich immer an, Leerzeichen vor
831 und hinter @emph{jede} Klammer zu setzen.  Wie wichtig das ist, wenn
832 Gesangstext eingesetzt wird, siehe @ruser{Was ist Gesangtext}.
833
834 Diese Fehlermeldung kann auch mit einem fehlenden schließenden Anführungszeichen
835 (@code{"}) auftreten.  In diesem Fall sollte die begleitende Fehlermeldung
836 eine Zeilenzahl angeben, die dicht am Fehler liegt.  Die nicht paarigen
837 Anführungszeichen sind meistens ein oder zwei Zeilen darüber.
838
839
840 @node Chybové hlášení Nespojená proměnná %
841 @unnumberedsubsec Chybové hlášení Nespojená proměnná %
842 @translationof Error message Unbound variable %
843
844 Diese Fehlermeldung erscheint am Ende der Kommandozeilenausgabe oder in der
845 Log-Datei mit einer Meldung @qq{GUILE signalled an error ...}
846 jedes Mal, wenn eine Scheme-Routine aufgerufen wird, die
847 (falscherweise) ein @emph{LilyPond}-Kommentar und kein
848 @emph{Scheme}-Kommentar enthält.
849
850 LilyPond-Kommentare befginnen mit dem Prozent-Zeichen (@code{%}) und
851 dürfen nicht in Scheme-Routinen benutzt werden.  Scheme-Kommentare beginnen
852 mit einem Semikolon (@code{;}).
853
854 @node Chybové hlášení  FT_Get_Glyph_Name
855 @unnumberedsubsec Chybové hlášení  FT_Get_Glyph_Name
856 @translationof Error message FT_Get_Glyph_Name
857
858 Diese Fehlermeldung erscheint in der Kommandozeilenausgabe, wenn die
859 Datei ein Zeichen enthält, das nicht zu ASCII gehört und die Datei
860 nicht in UTF-8-Kodierung gespeichert wurd.  Sie auch @ruser{Zeichenkodierung}.
861
862
863 @node Varování: staff affinities by měly jen klesat
864 @unnumberedsubsec Varování: staff affinities by měly jen klesat
865 @translationof Warning staff affinities should only decrease
866
867 Diese Warnung erscheint, wenn keine Notensysteme in der Ausgabe vorhanden
868 sind, wenn etwa nur @code{ChordName}-Kontext und @code{Lyrics}-Kontext
869 in einem Liedblatt vorhanden sind.  Die Warnungen können vermieden werden,
870 indem man einen der Kontexte als System erscheinen lässt, indem man ihm
871 zu Beginn hinzufügt:
872
873 @example
874 \override VerticalAxisGroup.staff-affinity = ##f
875 @end example
876
877 Zu Einzelheiten siehe @qq{Abstand von Nicht-Notensystemzeilen} in
878 @ruser{Flexible vertikale Abstände in Systemgruppen}.