2004-08-18 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * scm/documentation-generate.scm (string-append): add version.
+
+ * scm/define-markup-commands.scm (box): add box-padding and
+ thickness props for the box command.
+
+ * Documentation/user/changing-defaults.itely (Text encoding):
+ elucidate use of \encoding for \header strings.
+
+ * lily/parser.yy (lyric_element): use \encoding for lyrics strings.
+
+ * lily/score.cc (LY_DEFINE): check if length of music > 0. Fixes:
+ staff-change.ly
+
* lily/output-def.cc (assign_context_def): use set_variable().
* lily/text-item.cc (interpret_string): accept string input
@end example
This command may be placed anywhere in the input file. The current
-encoding is passed as an extra argument to @code{\markup} commands.
+encoding is passed as an extra argument to @code{\markup} commands,
+and is passed similarly to lyric syllables.
If no @code{\encoding} has been specified, then the encoding is taken
from the @code{\paper} block (or @code{\bookpaper}, if @code{\paper}
}
@end verbatim
+Normal strings, are unaffected by @code{\encoding}. This means that
+the following will usually not produce ba@ss{}tuba in the title.
+
+@verbatim
+ \header {
+ title = "Grazing cow"
+ instrument = "Baßtuba"
+ }
+@end verbatim
+
+Rather, you should say
+@verbatim
+ instrument = \markup { Baßtuba }
+@end verbatim
+
+@noindent
+or set @code{inputencoding} in the @code{\bookpaper} block.
+
There is a special encoding, called @code{TeX}. This encoding does not
reencode text for the font used. Rather, it tries to guess the width
of @TeX{} commands, such as @code{\"}. Strings encoded with @code{TeX}
lyric_element:
/* FIXME: lyric flavoured markup would be better */
full_markup {
+ $$ = $1;
}
| LYRICS_STRING {
+ $$ = make_simple_markup (THIS->lexer_->encoding (), $1);
}
;
Output_def *odef = unsmob_output_def (output_def);
Music *music = unsmob_music (mus);
- if (!music)
- return SCM_BOOL_F;
-
+ if (!music
+ || !music->get_length ().to_bool ())
+ {
+ warning (_ ("Need music in a score"));
+ return SCM_BOOL_F;
+ }
+
SCM_ASSERT_TYPE (music, mus, SCM_ARG1, __FUNCTION__, "Music");
SCM_ASSERT_TYPE (odef, output_def, SCM_ARG2, __FUNCTION__, "Output definition");
(Y-offset-callbacks . (,Side_position_interface::aligned_side))
(self-alignment-X . 0)
(direction . 1)
- (padding . 1.5)
- (staff-padding . 1.5)
+ (padding . 0.2)
+ (staff-padding . 0.25)
(meta . ((interfaces . (side-position-interface multi-measure-interface self-alignment-interface font-interface spanner-interface text-interface))))
))
(NoteCollision
(def-markup-command larger (markup?)
bigger-markup)
+
(def-markup-command (box paper props arg) (markup?)
- "Draw a box round @var{arg}"
-
- (let ((th 0.1)
- (pad 0.2)
+ "Draw a box round @var{arg}. Looks at @code{thickness} and
+@code{box-padding} to determine line thickness and padding around the
+markup."
+ (let ((th (chain-assoc-get props 'thickness 0.1))
+ (pad (chain-assoc-get props 'box-padding 0.2))
(m (interpret-markup paper props arg)))
(box-stencil m th pad)))
@end ignore
-") out-port)
+"
+
+ "This is the program reference for LilyPond version " (lilypond-version)
+
+ ) out-port)
(define top-node
(make <texi-node>
(ly:paper-system-number (car (node-lines node))))
(let* ((best-break-node (walk-lines '() '() lines))
- (break-nodes (get-path best-break-node '()))
- )
+ (break-nodes (get-path best-break-node '())))
(if (ly:get-option 'verbose)
(begin
conversions.append (((2, 3, 10), conv,
'''\\addlyrics -> \\oldaddlyrics, \\newlyrics -> \\addlyrics'''))
+def conv (str):
+ str = re.sub (r'\\setMmRestFermata\s+(R[0-9.*/]*)',
+ r'\1^\\fermataMarkup', str)
+ return str
+
+conversions.append (((2, 3, 11), conv,
+ '''\\setMmRestFermata -> ^\\fermataMarkup'''))
+
+
def conv_mode_experiment (str):