]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/de/user/scheme-tutorial.itely
lilypond-book robustness: ensure EOL at the end of @verbatim
[lilypond.git] / Documentation / de / user / scheme-tutorial.itely
index 880bfcd3005a5b3fd12d1981bec3bae4d725f973..673d78837b3ceea628ba47044991c6f01810cf09 100644 (file)
@@ -1,31 +1,31 @@
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 79583ed701a443510826b8f22f20fd6e7d5eccbe
+    Translation of GIT committish: 5131c3292d30cabdf08839daa02a006e4d3c96c5
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.12.0"
+
 @node Scheme tutorial
 @appendix Scheme tutorial
 
 @funindex #
 @cindex Scheme
 @cindex GUILE
-@cindex Scheme, in-line code
-@c @cindex accessing Scheme
-@c @cindex evaluating Scheme
+@cindex Scheme, in einer LilyPond-Datei
 @cindex LISP
 
 LilyPond verwendet die Scheme-Programmiersprache sowohl als Teil 
 der Eingabesyntax als auch als internen Mechanismus, um Programmmodule 
-zusammenzufügen. Dieser Abschnitt ist ein sehr kurzer Überblick über 
-die Dateneingabe mit Scheme. Wenn Sie mehr über Scheme wissen wollen,
+zusammenzufügen.  Dieser Abschnitt ist ein sehr kurzer Überblick über 
+die Dateneingabe mit Scheme.  Wenn Sie mehr über Scheme wissen wollen,
 gehen Sie zu @uref{http://@/www@/.schemers@/.org}.
 
 Das Grundlegendste an einer Sprache sind Daten: Zahlen, Zeichen, 
-Zeichenketten, Listen usw. Hier ist eine Liste der Datentypen, die für 
+Zeichenketten, Listen usw.  Hier ist eine Liste der Datentypen, die für 
 LilyPond-Eingabedateien relevant sind.
 
 @table @asis
@@ -36,9 +36,9 @@ für Wahr ist @code{#t} und für Falsch @code{#f}.
 @funindex ##f
 
 @item Zahlen
-Zahlen werden wie üblich eingegeben, @code{1} ist die (integre) 
+Zahlen werden wie üblich eingegeben, @code{1} ist die (ganze) 
 Zahl Eins, während @code{-1.5} ist eine Gleitkommazahl (also 
-eine nicht-integre).
+eine nicht-ganze).
 
 @item Zeichenketten
 Zeichenketten werden in doppelte Anführungszeichen gesetzt:
@@ -85,7 +85,7 @@ einer LilyPond-Datei stehen, darum wird immer die Raute verwendet.
 
 Scheme kann verwendet werden, um Berechnungen durchzuführen. Es 
 verwendet eine @emph{Präfix}-Syntax. Um 1 und@tie{}2 zu addieren, muss 
-man @code{(+ 1 2)} schreiben, und nicht @math{1+2}, wie in tranditioneller
+man @code{(+ 1 2)} schreiben, und nicht @math{1+2}, wie in traditioneller
 Mathematik.
 
 @lisp
@@ -109,38 +109,38 @@ wie @code{(* 3 4)} wird durch seinen Wert @code{12} ersetzt. Ähnlich
 verhält es sich mit Variablen. Nachdem eine Variable definiert ist:
 
 @example
-twelve = #12
+zwoefl = #12
 @end example
 
 @noindent
 kann man sie in Ausdrücken weiterverwenden:
 
 @example
-twentyFour = #(* 2 twelve)
+vierundzwanzig = #(* 2 zwoelf)
 @end example
 
 @noindent
-Die 24 wird in der Variablen @code{twentyFour} gespeichert.
+Die 24 wird in der Variablen @code{vierundzwanzig} gespeichert.
 Die gleiche Zuweisung kann auch vollständig in Scheme geschrieben 
 werden:
 
 @example
-#(define twentyFour (* 2 twelve))
+#(define vierundzwanzig (* 2 zwoelf))
 @end example
 
 Der @emph{Name} einer Variable ist auch ein Ausdruck, genauso wie 
 eine Zahl oder eine Zeichenkette. Er wird wie folgt eingegeben:
 
 @example
-#'twentyFour
+#'vierundzwanzig
 @end example
 
 @funindex #'symbol
 @cindex Zitieren in Scheme
 
 Das Apostroph @code{'} verhindert, dass bei der Scheme-Auswertung
- @code{twentyFour} durch @code{24} ersetzt wird. Anstatt dessen erhalten 
- wir die Bezeichnung @code{twentyFour}.
+ @code{vierundzwanzig} durch @code{24} ersetzt wird. Anstatt dessen erhalten 
+ wir die Bezeichnung @code{vierundzwanzig}.
 
 Diese Syntax wird sehr oft verwendet, weil es manche
 Einstellungsveränderungen erfordern, dass Scheme-Werte einer 
@@ -152,16 +152,16 @@ internen Variable zugewiesen werden, wie etwa
 
 Diese Anweisung verändert die Erscheinung der Notenhälse. Der Wert 
 @code{2.6} wird der Variable @code{thickness} (Dicke) eines 
-@code{Stem}-(Hals)-Ojektes gleichgesetzt. 
-@code{thickness} wird realtiv zu den Notenlinien errechnet, in diesem 
-Fall sind die Hälse also 2,6 mal so dick wie die Notenlinien. Dadurch 
+@code{Stem}-(Hals)-Objektes gleichgesetzt. 
+@code{thickness} wird relativ zu den Notenlinien errechnet, in diesem 
+Fall sind die Hälse also 2,6 mal so dick wie die Notenlinien.  Dadurch 
 werden Hälse fast zweimal so dick dargestellt, wie sie normalerweise sind. 
 Um zwischen Variablen zu unterscheiden, die in den Quelldateien direkt 
-definiert werden (wie @code{twentyFour} weiter oben), und zwischen denen, 
+definiert werden (wie @code{vierundzwanzig} weiter oben), und zwischen denen, 
 die für interne Objekte zuständig sind, werden hier die ersteren 
 @qq{Bezeichner} genannt, die letzteren dagegen @qq{Eigenschaften}.
 Das Hals-Objekt hat also eine @code{thickness}-Eigenschaft, während 
-@code{twentyFour} ein Bezeichner ist.
+@code{vierundzwanzig} ein Bezeichner ist.
 
 @cindex Eigenschaften versus Bezeichner
 @cindex Bezeichner versus Eigenschaften
@@ -183,7 +183,7 @@ des TextScript-Objektes verknüpft. Diese Zahlen werden in
 Systembreiten  gemessen, so dass der Befehl das Objekt eine Systembreite 
 nach rechts verschiebt und zwei Breiten nach oben.
 
-Die zwei Elemente eines Paares können von arbiträrem Inhalt sein, etwa
+Die zwei Elemente eines Paares können von beliebigem Inhalt sein, etwa
 
 @example
 #'(1 . 2)
@@ -220,3 +220,77 @@ Symbolliste und eine Liste von Listen:
 
 
 
+@menu
+* Tweaking with Scheme::
+@end menu
+
+@node Tweaking with Scheme
+@appendixsec Tweaking with Scheme
+
+Wir haben gesehen wie LilyPond-Eingabe massiv beeinflusst
+werden kann, indem Befehle wie etwa
+@code{\override TextScript #'extra-offset = ( 1 . -1)}
+benutzt werden.  Aber es wurde gezeigt, dass Scheme noch
+mächtiger ist.  Eine bessere Erklärung findet sich in der@ref{Scheme tutorial} und in
+@ruser{Interfaces for programmers}.
+
+Scheme kann auch in einfachen @code{\override}-Befehlen
+benutzt werden:
+
+TODO Find a simple example
+@c This isn't a valid example with skylining
+@c It works fine without padText  -td
+
+@ignore
+@lilypond[quote,verbatim,ragged-right]
+padText = #(define-music-function (parser location padding) (number?)
+#{
+  \once \override TextScript #'padding = #$padding
+#})
+
+\relative c''' {
+  c4^"piu mosso" b a b
+  \padText #1.8
+  c4^"piu mosso" d e f
+  \padText #2.6
+  c4^"piu mosso" fis a g
+}
+@end lilypond
+@end ignore
+
+Es kann auch benutzt werden, um Befehle zu erstellen:
+
+@c Check this is a valid example with skylining
+@c It is - 'padding still works
+
+@lilypond[quote,verbatim,ragged-right]
+tempoPadded = #(define-music-function (parser location padding tempotext)
+  (number? string?)
+#{
+  \once \override Score.MetronomeMark #'padding = $padding
+  \tempo \markup { \bold $tempotext }
+#})
+
+\relative c'' {
+  \tempo \markup { "Low tempo" }
+  c4 d e f g1
+  \tempoPadded #4.0 #"High tempo"
+  g4 f e d c1
+}
+@end lilypond
+
+Sogar ganze Musikausdrücke können eingefügt werden:
+
+@lilypond[quote,verbatim,ragged-right]
+pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
+#{
+  $x e8 a b $y b a e
+#})
+
+\relative c''{
+  \pattern c8 c8\f
+  \pattern {d16 dis} { ais16-> b\p }
+}
+@end lilypond
+
+