-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@ignore
- Translation of GIT committish: 32b9cd030a1917570346e9b9ea267fe409156b2f
+ Translation of GIT committish: e5a609e373eae846857f9a6d70a402a3d42b7d94
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.15.18"
+@c \version "2.19.24"
@c Translators: Till Paala
Fortgeschrittene Anpassungen können mithilfe der Programmiersprache
Scheme vorgenommen werden. Wenn Sie Scheme nicht kennen, gibt
es eine grundlegende Einleitung in LilyPonds
-@ref{Scheme-Übung}.
+@ref{Scheme-Tutorium}.
@menu
* LilyPond-Codeabschnitte::
Codeabschnitte in LilyPond sehen etwa so aus:
@example
- #@{ @var{Lilypond code} #@}
+ #@{ @var{LilyPond code} #@}
@end example
Sie können überall eingesetzt werden, wo man Scheme-Code schreiben
@example
function =
#(define-scheme-function
- (parser location @var{Arg1} @var{Arg2} @dots{})
+ (@var{Arg1} @var{Arg2} @dots{})
(@var{Typ1?} @var{Typ2?} @dots{})
@var{body})
@end example
und nicht nur eine Funktion für die allgemeine Verwendung schreibt.
Eine Liste der möglichen vordefinierten Typenprädikte findet sich in
-@ruser{Vordefinierte Typenprädikate}.
+@ruser{Vordefinierte Typprädikate}.
@seealso
Notationsreferenz
-@ruser{Vordefinierte Typenprädikate}.
+@ruser{Vordefinierte Typprädikate}.
Installierte Dateien:
@file{lily/music-scheme.cc},
@example
noPointAndClick =
#(define-void-function
- (parser location)
+ ()
()
(ly:set-option 'point-and-click #f))
...
@example
function =
#(define-music-function
- (parser location @var{Arg1} @var{Arg2} @dots{})
+ (@var{Arg1} @var{Arg2} @dots{})
(@var{Typ1?} @var{Typ2?} @dots{})
@var{body})
@end example
@ref{LilyPond-Codeabschnitte}.
Eine Liste der möglichen Typenprädikate findet sich in
-@ruser{Vordefinierte Typenprädikate}.
+@ruser{Vordefinierte Typprädikate}.
@seealso
Notationsreferenz:
-@ruser{Vordefinierte Typenprädikate}.
+@ruser{Vordefinierte Typprädikate}.
Installierte Dateien:
@file{lily/music-scheme.cc},
@example
manualBeam =
#(define-music-function
- (parser location beg-end)
+ (beg-end)
(pair?)
#@{
- \once \override Beam #'positions = #beg-end
+ \once \override Beam.positions = #beg-end
#@})
\relative c' @{
@lilypond[quote,verbatim,ragged-right]
manualBeam =
#(define-music-function
- (parser location beg end)
+ (beg end)
(number? number?)
#{
- \once \override Beam #'positions = #(cons beg end)
+ \once \override Beam.positions = #(cons beg end)
#})
\relative c' {
@lilypond[quote,verbatim,ragged-right]
AltOn =
#(define-music-function
- (parser location mag)
+ (mag)
(number?)
#{
- \override Stem #'length = #(* 7.0 mag)
- \override NoteHead #'font-size =
+ \override Stem.length = #(* 7.0 mag)
+ \override NoteHead.font-size =
#(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
#})
AltOff = {
- \revert Stem #'length
- \revert NoteHead #'font-size
+ \revert Stem.length
+ \revert NoteHead.font-size
}
-\relative c' {
- c2 \AltOn #0.5 c4 c
+\relative {
+ c'2 \AltOn #0.5 c4 c
\AltOn #1.5 c c \AltOff c2
}
@end lilypond
@lilypond[quote,verbatim,ragged-right]
withAlt =
#(define-music-function
- (parser location mag music)
+ (mag music)
(number? ly:music?)
#{
- \override Stem #'length = #(* 7.0 mag)
- \override NoteHead #'font-size =
+ \override Stem.length = #(* 7.0 mag)
+ \override NoteHead.font-size =
#(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
- $music
- \revert Stem #'length
- \revert NoteHead #'font-size
+ #music
+ \revert Stem.length
+ \revert NoteHead.font-size
#})
-\relative c' {
- c2 \withAlt #0.5 { c4 c }
+\relative {
+ c'2 \withAlt #0.5 { c4 c }
\withAlt #1.5 { c c } c2
}
@end lilypond
@example
displayBarNum =
#(define-music-function
- (parser location)
+ ()
()
(if (eq? #t (ly:get-option 'display-bar-numbers))
- #@{ \once \override Score.BarNumber #'break-visibility = ##f #@}
+ #@{ \once \override Score.BarNumber.break-visibility = ##f #@}
#@{#@}))
@end example
Dynamikbefehle zu schreiben:
@lilypond[quote,verbatim,ragged-right]
-dyn=#(define-event-function (parser location arg) (markup?)
+dyn=#(define-event-function (arg) (markup?)
(make-dynamic-script arg))
-\relative c' { c\dyn pfsss }
+\relative { c'\dyn pfsss }
@end lilypond
Man kann das Gleiche auch mit einer musikalischen Funktion erreichen, aber dann
"Draw a double box around text."
(interpret-markup layout props
#@{\markup \override #'(box-padding . 0.4) \box
- \override #'(box-padding . 0.6) \box @{ $text @}#@}))
+ \override #'(box-padding . 0.6) \box @{ #text @}#@}))
@end lisp
oder äquivalent
(interpret-markup layout props
#@{\markup \override #`(box-padding . ,inter-box-padding) \box
\override #`(box-padding . ,box-padding) \box
- @{ $text @} #@}))
+ @{ #text @} #@}))
@end lisp
Wiederum wäre die entsprechende Version mit dem @code{markup}-Makro
(interpret-markup layout props
#{\markup \override #`(box-padding . ,inter-box-padding) \box
\override #`(box-padding . ,box-padding) \box
- { $text } #}))
+ { #text } #}))
\markup \double-box A
\markup \override #'(inter-box-padding . 0.8) \double-box A
#(define-markup-list-command (paragraph layout props args) (markup-list?)
#:properties ((par-indent 2))
(interpret-markup-list layout props
- #@{\markuplist \justified-lines @{ \hspace #par-indent $args @} #@}))
+ #@{\markuplist \justified-lines @{ \hspace #par-indent #args @} #@}))
@end example
Die Version nur in Scheme ist etwas komplexer:
(< (abs (ly:grob-property grob 'staff-position)) 2))
(set! (ly:grob-property grob 'transparent) #t)))
-\relative c' {
- a'4 e8 <<\applyOutput #'Voice #blanker a c d>> b2
+\relative {
+ a'4 e8 <<\applyOutput Voice #blanker a c d>> b2
}
@end lilypond
usw.) können mit @code{\override} auf feste Werte gesetzt werden, etwa:
@example
-\override Stem #'thickness = #2.0
+\override Stem.thickness = #2.0
@end example
Eigenschaften können auch auf eine Scheme-Prozedur gesetzt werden:
-@lilypond[fragment,verbatim,quote,relative=2]
-\override Stem #'thickness = #(lambda (grob)
+@lilypond[fragment,verbatim,quote]
+\override Stem.thickness = #(lambda (grob)
(if (= UP (ly:grob-property grob 'direction))
2.0
7.0))
-c b a g b a g b
+\relative { c'' b a g b a g b }
@end lilypond
@noindent
TODO: das Beispiel für diesen Abschnitt ist nicht gut gewähtl:
@example
-F = -\tweak #'font-size #-3 -\flageolet
+F = -\tweak font-size #-3 -\flageolet
@end example
(beachte @samp{-}, was ein Nachereignis anzeigt) funktioniert
für den geschilderten Zweck sehr gut. Aber bis der Abschnitt
ergibt einen Syntaxfehler:
@example
-F = \tweak #'font-size #-3 -\flageolet
+F = \tweak font-size #-3 -\flageolet
-\relative c'' @{
- c4^\F c4_\F
+\relative @{
+ c''4^\F c4_\F
@}
@end example
(ly:music-property m 'tweaks)))
m)
-\relative c'' @{
- c4^\F c4_\F
+\relative @{
+ c''4^\F c4_\F
@}
@end example
(eq? (car (last-pair siblings)) grob))
(ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
-\relative c'' {
- \override Tie #'after-line-breaking =
+\relative {
+ \override Tie.after-line-breaking =
#my-callback
- c1 ~ \break c2 ~ c
+ c''1 ~ \break c2 ~ 2
}
@end lilypond
@example
\overrideProperty
-#"Score.NonMusicalPaperColumn" % Grob-Bezeichnung
+Score.NonMusicalPaperColumn % Grob-Bezeichnung
#'line-break-system-details % Eigenschaftsbezeichnung
#'((next-padding . 20)) % Wert
@end example