@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@ignore
- Translation of GIT committish: ab9e3136d78bfaf15cc6d77ed1975d252c3fe506
+ Translation of GIT committish: 70aaf0159410169678942abd39eb13c876521437
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.12.0"
+@c \version "2.13.40"
@c Translators: Till Paala
findet sich in einem eigenen Dokument: @rinternalsnamed{Top,der Referenz
der Interna}. Diese Referenz zeigt alle Variablen, Funktionen und Optionen,
die in LilyPond möglich sind. Es existiert als ein HTML-Dokumente, das
-sich
+sich
@c leave the @uref as one long line.
@uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/user/@/lilypond@/-internals/,on@/-line},
aber auch lokal in das LilyPond-Dokumentationspaket integriert lesen lässt.
Ein @code{Score}-Kontext wird eingerichtet, wenn eine
@code{\score @{@dots{}@}} oder @code{\layout @{@dots{}@}}-Umgebung
-interpretiert wird, oder explizit mit dem @code{\new Score}-Befehl.
-
+interpretiert wird.
@node Oberste Kontexte -- Container für Systeme
@unnumberedsubsubsec Oberste Kontexte -- Container für Systeme
Systemen. Jede Stimme wird auf einem eigenen System notiert, das
mit @code{\new Staff} begonnen wird.
-@lilypond[quote,verbatim,relative=2,ragged-right,fragment]
+@lilypond[quote,verbatim,relative=2,ragged-right]
<<
\new Staff { c4 c }
\new Staff { d4 d }
werden.
Jeder Kontext kann am Leben gehalten werden, indem man sicherstellt
-dass er zu jedem musikalischen Moment etwas zu tun hat.
+dass er zu jedem musikalischen Moment etwas zu tun hat.
@code{Staff}-Kontexte werden am Leben gehalten, indem man sicherstellt,
dass eine der enthaltenen Stimmen am Leben bleibt. Eine Möglichkeit,
das zu erreichen, ist es, unsichtbare Pause zu jeder Stimme
@code{Clef_engraver} (Engraver für den Schlüssel) aus dem
@code{Staff}-Kontext entfernt werden:
-@lilypond[quote,relative=1,verbatim,fragment]
+@lilypond[quote,relative=1,verbatim]
<<
\new Staff {
f2 g
@cindex Taktarten, mehrere in Partitur
@cindex Taktarten, unterschiedliche per System
-@lilypond[quote,relative=1,ragged-right,verbatim,fragment]
-\new Score \with {
- \remove "Timing_translator"
- \remove "Default_bar_line_engraver"
-} <<
+@lilypond[quote,verbatim]
+\score {
+ <<
+ \new Staff \with {
+ \consists "Timing_translator"
+ \consists "Default_bar_line_engraver"
+ } {
+ \time 3/4
+ c4 c c c c c
+ }
\new Staff \with {
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
} {
- \time 3/4
+ \time 2/4
c4 c c c c c
}
- \new Staff \with {
- \consists "Timing_translator"
- \consists "Default_bar_line_engraver"
- } {
- \time 2/4
- c4 c c c c c
- }
>>
+\layout {
+ \context {
+ \Score
+ \remove "Timing_translator"
+ \remove "Default_bar_line_engraver"
+ }
+ }
+}
@end lilypond
@knownissues
sie dann in der @code{\context}-Definition anzuwenden, indem man die
Variable aufruft.
-Der Befehl @code{\RemoveEmptyStaffContext} überschreibt die
+Der Befehl @code{\Staff \RemoveEmptyStaves} überschreibt die
aktuellen Einstellungen für @code{Staff}. Wenn die Einstellungen
-für Systeme verändert werden sollen, die @code{\RemoveEmptyStaffContext}
+für Systeme verändert werden sollen, die @code{\Staff \RemoveEmptyStaves}
benutzen, müssen die Veränderungen gemacht werden, nachdem
-@code{\RemoveEmptyStaffContext} aufgerufen wurde, etwa:
+@code{\Staff \RemoveEmptyStaves} aufgerufen wurde, etwa:
@example
\layout @{
\context @{
- \RemoveEmptyStaffContext
+ \Staff \RemoveEmptyStaves
\override Stem #'thickness = #4.0
@}
Folgende Aufgabe wird bearbeitet: Der Fingersatz aus dem Beispiel
unten soll verändert werden:
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,relative=2,verbatim]
c-2
\stemUp
f
(script-priority . 100)
(stencil . ,ly:text-interface::print)
(direction . ,ly:script-interface::calc-direction)
- (font-encoding . fetaNumber)
+ (font-encoding . fetaText)
(font-size . -5) ; don't overlap when next to heads.
(meta . ((class . Item)
(interfaces . (finger-interface
Die Position der @b{2} aus dem Beispiel unten soll also geändert werden:
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,relative=2,verbatim]
c-2
\stemUp
f
Wenn dieser Befehl in den Quelltext eingefügt wird, bevor der
Fingersatz notiert ist, erhält man folgendes:
-@lilypond[quote,relative=2,fragment,verbatim]
+@lilypond[quote,relative=2,verbatim]
\once \override Voice.Fingering #'padding = #3
c-2
\stemUp
@item
Scheme-Funktionen: ly:plus-scheme-stil
-
+
@item
Musikalische Ereignisse, Musikklassen und Musikeigenschaften: wie-scheme-funktionen
@item
Grob-Schnittstellen: scheme-stil
-
+
@item
backend-Eigenschaften: scheme-stil (aber X und Y)
-
+
@item
Kontexte: Großbuchstabe, oder GroßbuchstabeZwischenWörtern (CamelCase)
@item
Kontext-Eigenschaften: kleinbuchstabeMitFolgendenGroßbuchstaben
-
+
@item
Engraver: Großbuchstabe_gefolgt_von_kleinbuchstaben_mit_unterstrichen
@end itemize
* Der override-Befehl::
* Der tweak-Befehl::
* set versus override::
+* Alisten verändern::
@end menu
@var{Bezeichnung} ist die Bezeichnung eines graphischen Objekts,
-wie @code{Stem} (Hals) oder @code{NoteHead} (Notenkopf), und
+wie @code{Stem} (Hals) oder @code{NoteHead} (Notenkopf), und
@var{Eigenschaft} ist eine interne Variable des Formatierungssystems
(eine @qq{Grob-Eigenschaft} oder @qq{Layout-Eigenschaft}). Diese
Eigenschaft ist ein Symbol, muss also mit einem Anführungsstrich
das gerade aktuelle Notensystem aus. Andere Systeme behalten
ihr normales Aussehen. Hier ein Beispiel mit diesem Befehl:
-@lilypond[quote,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
c4
\override Staff.Stem #'thickness = #4.0
c4
@code{Voice}-Kontext angenommen wird. Mit einem zusätzlichen
@code{\once} wirkt sich die Änderung nur einmal aus:
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
c4
\once \override Stem #'thickness = #4.0
c4
schon geschrieben werden, bevor das Objekt begonnen wird. In dem
folgenden Beispiel
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\override Slur #'thickness = #3.0
c8[( c
-\override Beam #'thickness = #0.6
+\override Beam #'beam-thickness = #0.6
c8 c])
@end lilypond
Kontexteigenschaft @code{skipBars} (Takte überspringen) auf @code{#t}
(wahr) gesetzt wird:
-@lilypond[quote,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
R1*2
\set Score.skipBars = ##t
R1*2
üblicherweise @code{ChordNames}, @code{Voice} oder
@code{Lyrics}.
-@lilypond[quote,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
\set Score.autoBeaming = ##f
<<
{
bezieht, die Eigenschaft sich aber im @code{Score}-Kontext
befindet:
-@lilypond[quote,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
R1*2
\set skipBars = ##t
R1*2
Kontext rückgängig. Wenn also im @code{Staff}-Kontext die
Bebalkung ausgeschaltet wird:
-@lilypond[quote,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
\set Score.autoBeaming = ##t
<<
{
Einstellungen, die nur einmal vorgenommen werden sollen, können
mit @code{\once} notiert werden, etwa:
-@lilypond[quote,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
c4
\once \set fontSize = #4.7
c4
Beispielsweise kann die Dicke eines Notenhalses verändert werden, indem
man die @code{thickness}-Eigenschaft des @code{Stem}-Objekts verändert:
-@lilypond[quote, verbatim, relative=2, fragment]
+@lilypond[quote, verbatim, relative=2]
c4 c
\override Voice.Stem #'thickness = #3.0
c4 c
Wenn kein Kontext angegeben wird, wird der tiefste aktuelle Kontext
benutzt:
-@lilypond[quote, verbatim, relative=2, fragment]
+@lilypond[quote, verbatim, relative=2]
{ \override Staff.Stem #'thickness = #3.0
<<
{
Die Auswirkungen von @code{\override} können mit @code{\revert} wieder
rückgängig gemacht werden:
-@lilypond[quote, verbatim, relative=2, fragment]
+@lilypond[quote, verbatim, relative=2]
c4
\override Voice.Stem #'thickness = #3.0
c4 c
Die Auswirkungen von @code{\override} und @code{\revert} wirken sich auf alle
Grobs im entsprechenden Kontext aber der Stelle aus, an der sie gesetzt werden:
-@lilypond[quote, verbatim, relative=2, fragment]
+@lilypond[quote, verbatim, relative=2]
{
<<
{
@code{\once} kann zusammen mit @code{\override} benutzt werden,
um nur den aktuellen Zeitwert zu verändern:
-@lilypond[quote, verbatim, relative=2, fragment]
+@lilypond[quote, verbatim, relative=2]
{
<<
{
ausschalten will, die Probleme verursachen.
@end ignore
+
@seealso
Referenz der Interna:
@end ignore
+@node Alisten verändern
+@subsection Alisten verändern
+@translationof Modifying alists
+
+Einige vom Benutzer einstellbare Eigenschaften sind intern als
+@emph{alists} (Assoziative Listen) dargestellt, die Paare von
+Schlüsseln und Werten speichern. Die Struktur einer Aliste ist:
+
+@example
+#((@var{Schlüssel1} . @var{Wert1})
+ (@var{Schlüssel2} . @var{Wert2})
+ (@var{Schlüssel3} . @var{Wert3})
+ @dots{})
+@end example
+
+Wenn eine Aliste eine Grob-Eigenschaft oder eine Variable der
+@code{\paper}-Umgebung ist, können ihre Schlüssel einzeln verändert
+werden, ohne andere Schlüssel zu beeinflussen.
+
+Um beispielsweise den Freiraum zwischen benachbarten Systemen
+in einer Systemgruppe zu verkleinern, kann man die
+@code{staff-staff-spacing}-Eigenschaft des
++@code{StaffGrouper}-Grobs benutzen. Die Eigenschaft ist eine
+Aliste mit vier Schlüsseln: @code{padding} (Verschiebung),
+@code{space} (Platz), @code{minimum-distance} (minimaler Abstand)
+und @code{stretchability} (Dehnbarkeit). Drei der vier Schlüssel
+haben zu Beginn Standardwerte, die in der Datei @file{scm/define-grobs.scm}
+(neben allen anderen Grob-Eigenschaften) definiert sind.
+
+@example
+(staff-staff-spacing . ((padding . 1)
+ (space . 9)
+ (minimum-distance . 7)))
+@end example
+
+Eine Möglichkeit, die Systemen dichter zueinander zu zwingen,
+ist es, der Wert des @code{space}-Schlüssels (@code{9}) zu
+verändern, sodass der den gleichen Wert wie
+@code{minimum-distance} (@code{7}) hat. Um einen einzelnen
+Schlüssel zu verändern, wird ein geschachtelter Aufruf benutzt:
+
+@lilypond[quote,verbatim]
+% default space between staves
+\new PianoStaff <<
+ \new Staff { \clef treble c''1 }
+ \new Staff { \clef bass c1 }
+>>
+
+% reduced space between staves
+\new PianoStaff \with {
+ \override StaffGrouper #'staff-staff-spacing #'space = #7
+} <<
+ \new Staff { \clef treble c''1 }
+ \new Staff { \clef bass c1 }
+>>
+@end lilypond
+
+Wenn man diese Art des geschachtelten Aufrufs einsetzt, wird der
+spezifische Schlüssel (@code{space} im obigen Beispiel) verändert,
+ohne dass sich andere Wert für die gleiche Eigenschaft ändern würden.
+
+Nun sollen die Systeme so dicht wie möglich gesetzt werden, ohne das
+Überlappungen vorkommen. Die einfachste Möglichkeit, das zu tun, wäre
+es, alle vier Wert auf 0 zu setzen. In diesem Fall muss man nicht jeden
+Wert mit einem geschachtelten Aufruf definieren, sondern die Eigenschaft
+kann mit einem Aufruf als Aliste vollständig verändert werden:
+
+@lilypond[quote,verbatim]
+\new PianoStaff \with {
+ \override StaffGrouper #'staff-staff-spacing =
+ #'((padding . 0)
+ (space . 0)
+ (minimum-distance . 0)
+ (stretchability . 0))
+} <<
+ \new Staff { \clef treble c''1 }
+ \new Staff { \clef bass c1 }
+>>
+@end lilypond
+
+Dabei sollte beachtet werden, dass alle Schlüssel, die bei dieser
+Weise des Aufrufs nicht explizit aufgelistet sind, auf den Standardwert
+gesetzt werden, den sie hätten, wenn sie nicht definiert werden.
+Im Falle von @code{staff-staff-spacing} würden alle nicht genannten
+Schlüsselwerte auf 0 gesetzt (außer @code{stretchability}, welche immer
+den Wert von @code{space} hat, wenn sie nicht definiert ist). Somit sind
+folgende Aufrufe äquivalent:
+
+@example
+\override StaffGrouper #'staff-staff-spacing =
+ #'((space . 7))
+
+\override StaffGrouper #'staff-staff-spacing =
+ #'((padding . 0)
+ (space . 7)
+ (minimum-distance . 0)
+ (stretchability . 7))
+@end example
+
+Eine möglicherweise ungewollte Konsequenz hiervon ist, dass alle
+nicht initialisierten Standardwerte, die etwa in einer Initialisierungsdatei
+zu Beginn einer LilyPond-Partitur geladen werden, nach dem Aufruf
+rückgängig gemacht werden. Im obigen Beispiel werden die
+initialisierten Standardwerte für @code{padding} und @code{minimum-distance}
+(definiert in @file{scm/define-grobs.scm}) auf den Standard zurückgesetzt, den sie uninitialisiert hätten (0 in beiden Fällen). Wenn eine Eigenschaft oder
+Variable in Form einer Aliste (jeder Größe) definiert wird, werden
+immer alle Schlüsselwerte auf den uninitialisierten Zustand zurückgesetzt.
+Es ist also sicherer, geschachtelte Aufrufe zu benutzen, wenn man nicht
+bewusst alle Werte zurücksetzen will.
+
+@warning{Geschachtelte Aufrufe funktionieren nicht mit
+Kontexteigenschaften (wie etwa @code{beamExceptions}, @code{keySignature},
+@code{timeSignatureSettings}, usw.) Diese Eigenschaften können
+nur verändert werden, indem man sie vollständig als Alisten umdefiniert.}
+
+
@node Nützliche Konzepte und Eigenschaften
@section Nützliche Konzepte und Eigenschaften
@translationof Useful concepts and properties
Man erreicht ihn mit dem Befehl @code{\lyricmode}. Die Eingabe
wird entsprechend der Syntax für Silben eines Gesangstextes
-interpretiert, wobei optional Dauern und verknüpfte
+interpretiert, wobei optional Dauern und verknüpfte
Gesangstextveränderer möglich sind, siehe @ref{Notation von Gesang}.
Der Gesangstextmodus wird auch durch den Befehl @code{\addlyrics}
Man erreicht ihn mit dem Befehl @code{\markup}. Die Eingabe wird
entsprechend der Syntax für Textbeschriftung interpretiert, siehe
-@ref{Text markup commands}.
+@ref{Textbeschriftungsbefehle}.
@c silly work-around for texinfo broken-ness
@c (@strong{Note...} causes a spurious cross-reference in Info)
in den Unterlisten @code{left-broken} bzw. @code{right-broken}
von @code{bound-details} abgelegt. Zum Beispiel:
-@lilypond[relative=2,ragged-right,verbatim,fragment]
+@lilypond[relative=2,ragged-right,verbatim,quote]
\override Glissando #'breakable = ##t
\override Glissando #'(bound-details right-broken Y) = #-3
c1 \glissando \break
um @i{cresc.}, @i{tr} oder andere Texte an horizontale
Strecker zu setzen.
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+@lilypond[quote,ragged-right,relative=2,verbatim]
\override TextSpanner #'(bound-details left text)
= \markup { \small \bold Slower }
c2\startTextSpan b c a\stopTextSpan
gesetzt werden, wird das Symbol am Rand vertikal entsprechend
des Endpunktes der Linie verschoben:
-@lilypond[relative=1,fragment,verbatim]
+@lilypond[relative=1,quote,verbatim]
\override TextSpanner
#'(bound-details left stencil-align-dir-y) = #-2
\override TextSpanner
@code{to-barline} auf wahr gesetzt ist und eine Taktlinie
vor der nächsten Note erscheint.
-@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
+@lilypond[verbatim,quote,ragged-right,relative=2]
\endSpanners
c2 \startTextSpan c2 c2
\endSpanners
Hier einige Beispiele, welche Linienstile möglich sind
und wie sie verändert werden können:
-@lilypond[relative=2,ragged-right,verbatim,fragment]
+@lilypond[relative=2,ragged-right,verbatim,quote]
d2 \glissando d'2
\once \override Glissando #'style = #'dashed-line
d,2 \glissando d'2
Realzeit für jedes graphische Objekt errechnet, aber
es ist möglich, sie manuell vorzugeben:
-@c FIXME Complete
-@lilypond[relative=2,ragged-right,verbatim,fragment]
+@c TODO Complete
+@lilypond[relative=2,ragged-right,verbatim,quote]
e2 \glissando f
\once \override Glissando #'(bound-details right Y) = #-2
e2 \glissando f
@node Beispiele der Ersetzungsfunktionen
-@subsection Beispiele der Ersetzungsfunktionen
+@subsection Beispiele der Ersetzungsfunktionen
@translationof Substitution function examples
Dieser Abschnitt zeigt einige Beispiele von Ersetzungsfunktionen.