Hallo,
ich hoffe ich kann im Folgenden ein paar Unklarheiten beseitigen.
Zunächst zur generellen Schreibweise.
context-properties werden in studlyCaps geschrieben. Also z.B.: fontSize, im Unterschied zum grob-property (font-size) bzw dem markup-command (fontsize).
Wo können sie gesetzt werden?:
Sie können in \layout, \with oder auch irgendwo in einer Stimme angegeben werden.
Zur Hierarchie:
Die Angabe im \layout erfolgt für alle angegebenen contexts.
Die Angabe im \with erfolgt nur für diesen context und überschreibt die eventuell erfolgte Setzung im \layout.
Die Angabe in der Stimme überschreibt die Angaben in \layout und \with.
Zum \layout und \with:
Das \layout hat die Form:
\layout {
\context {
\Score %% oder Staff, StaffGroup etc
fontSize = #4
}
}\set ist nicht erforderlich. Auch nicht die Angabe eines contexts wie \set Score. <...>, denn sie ist durch \Score schon erfolgt. Dies gilt entsprechend auch für \with.
Angabe in der Stimme:
Nur hier wird \set benötigt.
Falls man auf die Angabe eines context verzichtet wird der "Bottom"-context benutzt. Das ist der context mit dem niedrigsten level, i.d.R also "Voice". z.B.: \set fontSize = #3
Falls man einen größeren Wirkungskreis haben möchte sollte man "Staff" oder "Score" wählen. z.B.: \set Score.fontSize = #3
Die Rücknahme erfolgt mit \unset ...
Eine einmalige Anwendung läßt sich mit vorangestelltem \once erreichen.
Ich habe ein hoffentlich erhellendes Beispiel angefügt.
HTH,
Harm
\version "2.14.2"
\paper { indent = 30 }
staffGroupInstrumentName =
\markup {
\fontsize #-3
\override #'(line-width . 15)
\wordwrap {
Für die ganze StaffGroup wurde die fontSize
im \typewriter "\\layout" festgelegt:
\fontsize #-3
\typewriter
\column { " \\layout {"
" \\context {"
" \\Score"
" fontSize = #3 "
" }"
" }"
}
}
}
staffMarkup = \markup {
\fontsize #-3
\override #'(line-width . 12)
\wordwrap {
Für diesen Staff wurde die fontSize
in \typewriter "\\with" festgelegt:
\fontsize #-3
\typewriter
" \\with { fontSize = #-4 }"
Dies überschreibt die Angabe im \typewriter "\\layout"
}
}
mrkpI = \markup {
\fontsize #-13
\override #'(line-width . 12)
\override #'(baseline-skip . 2)
\override #'(word-space . 0.5)
\wordwrap {
Hier wurde die fontSize überschrieben,
\typewriter "\\set" ist erforderlich:
\fontsize #-3
\typewriter
" \\set fontSize = #6 "
Die Rücknahme erfolgt mit \hspace #5
\fontsize #-3 \typewriter " \\unset fontSize"
\hspace #4
Dies überschreibt sowohl die Angabe im \typewriter "\\layout"
als auch die in \typewriter "\\with"
}
}
mrkpII = \markup {
\fontsize #-17
\override #'(line-width . 12)
\override #'(baseline-skip . 2)
\override #'(word-space . 0.7)
\wordwrap {
Hier wurde die fontSize einmalig überschrieben:
\fontsize #-3
\typewriter
" \\once \set fontSize = #10 "
Dies überschreibt ebenfalls sowohl die Angabe
im \typewriter "\\layout"
als auch die in \typewriter "\\with"
}
}
mus = \relative c'' {
c4^\staffMarkup c c c
\set fontSize = #6
c^\mrkpI c c c
\unset fontSize
c c c c
\once \set fontSize = #10
c^\mrkpII c c c
}
mus² = \relative c'' {
\repeat unfold 4 { c c c c }
}
\score {
\new StaffGroup \with { instrumentName = \staffGroupInstrumentName }
<<
\new Staff \with { fontSize = #-4 }
\mus
\new Staff
\mus²
>>
\layout {
\context {
\Score
fontSize = #3
}
}
}