Carl Sorensen wrote:
> I disagree with the idea that the simplest solution is to
> move the \relative outside the \repeat.
I've attached a new patch following your suggestions.
Okay to push?
- Mark
From 40270827b0ac9ee4500b36038ee9ca83178e6e71 Mon Sep 17 00:00:00 2001
From: Mark Polesky <[email protected]>
Date: Fri, 30 Apr 2010 09:42:15 -0700
Subject: [PATCH] Doc: Clarify \relative inside \repeat issue.
---
Documentation/notation/repeats.itely | 12 ++++++++--
Documentation/usage/running.itely | 36 +++++++++++++++++----------------
2 files changed, 28 insertions(+), 20 deletions(-)
diff --git a/Documentation/notation/repeats.itely b/Documentation/notation/repeats.itely
index 9e2b53e..113b681 100644
--- a/Documentation/notation/repeats.itely
+++ b/Documentation/notation/repeats.itely
@@ -109,9 +109,10 @@ Normal repeats with alternate endings:
c1
@end lilypond
-...@warning{do not include @co...@bs{}relative} inside a
-...@code{@bs{}repeat}. It will cause unwanted staves to appear.
-See @rprogram{An extra staff appears}.}
+...@warning{if you include @co...@bs{}relative} inside a
+...@code{@bs{}repeat} without explicitly instantiating the
+...@code{voice} context, extra (unwanted) staves will appear. See
+...@rprogram{an extra staff appears}.}
@cindex repeat with upbeat
@cindex upbeat in a repeat
@@ -385,6 +386,11 @@ c1
c1
@end lilypond
+...@warning{if you include @co...@bs{}relative} inside a
+...@code{@bs{}repeat} without explicitly instantiating the
+...@code{voice} context, extra (unwanted) staves will appear. See
+...@rprogram{an extra staff appears}.}
+
@seealso
Snippets:
diff --git a/Documentation/usage/running.itely b/Documentation/usage/running.itely
index 93c0c3a..eeba9e8 100644
--- a/Documentation/usage/running.itely
+++ b/Documentation/usage/running.itely
@@ -649,17 +649,17 @@ line to break. For details, see @ruser{Bar lines}.
@node An extra staff appears
@unnumberedsubsec An extra staff appears
-If contexts are not created explicitly with @code{\new} they will be
-silently created as soon as a command is encountered which cannot
-be applied to an existing context. In simple scores the automatic
-creation of contexts is useful, and most of the examples in the
-LilyPond manuals take advantage of this simplification. But
-occasionally the silent creation of contexts can give rise to
-unexpected new staves or scores. For example, it might be expected
-that the following code would cause all note heads within the
-following staff to be colored red, but in fact it results in two
-staves with the note heads remaining the default black in the lower
-staff.
+If contexts are not created explicitly with @code{\new} or
+...@code{\context}, they will be silently created as soon as a
+command is encountered which cannot be applied to an existing
+context. In simple scores the automatic creation of contexts is
+useful, and most of the examples in the LilyPond manuals take
+advantage of this simplification. But occasionally the silent
+creation of contexts can give rise to unexpected new staves or
+scores. For example, it might be expected that the following code
+would cause all note heads within the following staff to be
+colored red, but in fact it results in two staves with the note
+heads remaining the default black in the lower staff.
@lilypond[quote,verbatim,relative=2]
\override Staff.NoteHead #'color = #red
@@ -680,23 +680,25 @@ correct code to color all note heads red is
@end lilypond
As a second example, if a @code{\relative} command is placed inside
-a @code{\repeat} command two staves result, the second offset from
+a @code{\repeat} command, two staves result, the second offset from
the first, because the @code{\repeat} command generates two
@code{\relative} blocks, which each implicitly create @code{Staff}
and @code{Voice} blocks.
@lilypond[quote,verbatim]
\repeat unfold 2 {
- \relative c' { c d e f }
+ \relative c' { c4 d e f }
}
@end lilypond
-The correct way is to reverse the @code{\repeat} and
-...@code{\relative} commands, like this:
+Explicitly instantiating the @code{Voice} context fixes the
+problem:
@lilypond[quote,verbatim]
-\relative c' {
- \repeat unfold 2 { c d e f }
+\new Voice {
+ \repeat unfold 2 {
+ \relative c' { c4 d e f }
+ }
}
@end lilypond
--
1.6.3.3
_______________________________________________
lilypond-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-devel