+@node Command line options for lilypond
+@subsection Command line options for @command{lilypond}
+
+Die folgenden Kommandozeilenoptionen werden von @command{lilypond} unterstützt:
+
+@table @code
+
+@item -e,--evaluate=@var{expr}
+Wertet den Scheme-Ausdruck @var{expr} aus, bevor die @file{.ly} Dateien
+gelesen und interpretiert werden.
+Die @code{-e} Option kann auch mehrfach angegeben werden, die Ausdrücke
+werden nacheinander ausgewertet.
+
+Da der Ausdruck im @code{guile-user} Modul ausgewertet wird, ist bei der
+Definitionen innerhalb von @var{expr} folgendes Vorgehen nötig. An der
+Kommandozeile wird z.B. @code{a} im @code{guile-user} Modul definiert:
+
+@example
+lilypond -e '(define-public a 42)'
+@end example
+
+@noindent
+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:
+
+@example
+#(use-modules (guile-user))
+@end example
+
+
+@item -f,--format=@var{Format}
+Bestimmt das Ausgabeformat. Mögliche Werte von @var{Format} sind
+@code{svg}, @code{ps}, @code{pdf} und @code{png}.
+
+Beispiel: @code{lilypond -fpng @var{Dateiname}.ly}
+
+
+
+@item -d,--define-default=@var{Variable}=@var{Wert}
+Damit wird die interne Programmoption @var{Variable} auf den Scheme-Wert
+@var{Wert} gesetzt. Wird kein @var{Wert} angegeben, so wird @var{#t} benutzt.
+Um eine Option auszuschalten, kann der Präfix @code{no-} dem Namen
+@var{Variable} der Variable vorangestellt werden. So ist etwa
+
+@cindex Point and Click, Kommandozeile
+
+@example
+-dno-point-and-click
+@end example
+
+@noindent
+dasselbe wie
+@example
+-dpoint-and-click='#f'
+@end example
+
+Hier sind ein paar interessante Optionen:
+
+@table @samp
+@item help
+Die Ausführung von @code{lilypond -dhelp} zeigt alle verfügbaren @code{-d}
+Optionen.
+
+@item paper-size
+Setzt das Standard-Papierformat,
+@example
+-dpaper-size=\"letter\"
+@end example
+
+@noindent
+Die Zeichenkette, die das Format angibt, muss in Anführungszeichen mit Backslash
+( @code{\"} ) stehen.
+
+
+@item safe
+Vertraut der @code{.ly} Datei nicht.
+
+Wenn LilyPond über einen Webserver verfügbar gemacht wird, @b{MUSS} unbedingt
+eine die Optionen @code{--safe} oder @code{--jail} angegeben werden.
+Die @code{--safe} Option verhindert, dass in der .ly-Datei angegebener
+Scheme-Code das System gefährden kann, wie etwa in folgendem Beispiel:
+
+@quotation
+@verbatim
+#(system "rm -rf /")
+{
+ c4^#(ly:export (ly:gulp-file "/etc/passwd"))
+}
+@end verbatim
+@end quotation
+
+Mit der @code{-dsafe} Option werden alle Scheme-Ausdrücke einem speziellen
+sicheren Modus ausgewertet. Dieser Modus ist vom GUILE @file{safe-r5rs} Modul
+abgeleitet und fügt noch zahlreiche weitere erlaubte Funktionen der
+LilyPond Programm-Schnittstelle hinzu. Diese Funktionen sind in
+@file{scm/@/safe@/-lily@/.scm} angegeben.
+
+Zusätzliche verbietet der sichere Modus auch @code{\include} Befehle.
+
+Im sicheren Modus ist es nicht möglich, LilyPond-Variablen nach Scheme
+zu exportieren.
+
+@code{-dsafe} erkennt jedoch @emph{KEINE} Überbeanspruchung der verfügbaren
+Ressourcen. In diesem Modus ist es also trotzdem möglich, dass LilyPond in einer
+Endlosschleife hängt, z.B. wenn zyklische Datenstrukturen an das Backend
+übergeben werden. Wenn LilyPond also auf einem öffentlich zugänglichen
+Webserver verfügbar gemacht wird, sollte der Prozess sowohl in der CPU-
+als auch in der Speichernutzung limitiert werden.
+
+Der sichere Modus verhindert auch, dass zahlreiche nützliche
+Musikfragmente von LilyPond verarbeitet werden. Die @code{--jail} Option ist
+eine sicherere Alternative, benötigt allerdings auch mehr Aufwand zur
+Einrichtung.
+
+@item backend
+Gibt an, welches Ausgabeformat das LilyPond Backend benutzt. Mögliche Werte
+für diese Option sind:
+
+@table @code
+@item ps
+PostScript-Ausgabeformat.
+
+@cindex PostScript Ausgabeformat
+
+Postscript-Dateien enthalten auch TTF-, Type1- und OTF-Schriften. Allerdings
+wird die gesamte Schriftart eingefügt und nicht nur die benötigten Zeichen.
+Vor allem wenn nicht-westliche Zeichensätze benutzt werden, kann dies zu sehr
+großen Dateien führen.
+
+@item eps
+Erzeugt @q{encapsulated PostScript} (EPS). Jede Seite (oder jedes System) wird
+als eigene @file{EPS}-Datei ausgegeben, inklusive Schriftarten. Außerdem wird
+eine Datei mit allen Seiten (bzw. Systemen) und Schriftarten erzeugt.
+
+Dies ist die Standardeinstellung von @command{lilypond-book}.
+
+@item svg
+SVG-Ausgabe (Scalable Vector Graphics). Jede Seite wird als eigene
+@file{SVG}-Datei ausgegeben, inklusive eingebetteten Schriftarten.
+@cindex SVG (Scalable Vector Graphics)
+Sie benötigen einen SVG-Betrachter, der eingebettete Schriftarten unterstützt,
+oder einen SVG-Betrachter, der eingebettete Schriftarten durch OTF-Schriften
+ersetzen kann. In UNIX und Linux kann z.B. @uref{http://www.inkscape.org,Inkscape}
+(ab Version 0.42) benutzt werden, nachdem die OTF-Schriften aus dem
+LilyPond-Verzeichnis (typischerweise @file{/usr/share/lilypond/VERSION/fonts/otf/})
+in das Verzeichnis @file{~/.fonts/} kopiert wurden.
+
+@item scm
+gibt die rohen Scheme-basierenden Zeichenbefehle aus, wie sie intern von
+LilyPond benutzt werden.
+
+@cindex Scheme dump
+
+@item null
+Keine Partitur wird ausgegeben, hat gleichen Effekt wie @code{-dno-print-pages}.
+
+@end table
+
+Beispiel: @code{lilypond -dbackend=svg @var{Dateiname}.ly}
+
+@cindex Ausgabeformat
+
+@item preview
+Erzeugt eine Ausgabedatei, die nur die Titelzeilen und das erste System
+enthält.
+
+@item print-pages
+Erzeugt vollständige Seiten (Standardeinstellung). @code{-dno-print-pages}
+ist in Verbindung mit @code{-dpreview} nützlich.
+
+@end table
+
+
+
+@item -h,--help
+Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen.