\csh
\once \override Beam.damping = #+inf.0
<bes'' es g>8 \csl \slurUp
- %\once\override Slur.extra-offset = #'(0 . 4)
+ % Fix problem with -dpreview cropping beams
+ \once \override TextScript.padding = #10 <> _\markup { " " }
es,,64 bes' es g s32.
c64
s4 <bes des>
object through its @code{staff-padding} property. Since the property
takes a @code{number}, @var{offsets} is provided with a list of
@code{number}s to account for the two segments created by the line
-break. The slur piece on the first line is effectively untouched since
-@code{0} is added to its default value. The segment on the second
-line is raised two staff-spaces from its default height. The default
-height happens to be @code{2}, though it is not necesssary to know this.
+break. The bracket piece on the first line is effectively untouched
+since @code{0} is added to its default value of @code{staff-padding}.
+The segment on the second line is raised three staff-spaces from its
+default height. The default height happens to be @code{2}, though it is
+not necessary to know this to achieve the desired positioning.
@lilypond[quote,verbatim]
{
@ifclear web_version
@c no anchor links, just link to News page
-@ref{News, LilyPond 2.19.60 released - @emph{May 08, 2017}}
+@ref{News, LilyPond 2.19.62 released - @emph{June 10, 2017}}
@ref{News, Two LilyPond projects in Google Summer of Code 2016 - @emph{April 23, 2016}}
@ifset web_version
@c anchor links, link to individual news items by their <a> tag
-@uref{news.html#LilyPond-2_002e19_002e60-released-May-08_002c-2017,
- LilyPond 2.19.60 released - @emph{May 08, 2017}}
+@uref{news.html#LilyPond-2_002e19_002e62-released-June-10_002c-2017,
+ LilyPond 2.19.62 released - @emph{June 10, 2017}}
@uref{news.html#Two-LilyPond-projects-in-Google-Summer-of-Code-2016-April-23_002c-2016,
Two LilyPond projects in Google Summer of Code 2016 - @emph{April 23, 2016}}
@c used for news about the upcoming release; see CG on Release Work
@newsItem
-@subheading LilyPond 2.19.60 released @emph{May 08, 2017}
+@subheading LilyPond 2.19.62 released @emph{June 10, 2017}
We are happy to announce the release of LilyPond
-2.19.60. This release includes a number of enhancements, and contains some
+2.19.62. This release includes a number of enhancements, and contains some
work in progress. You will have access to the very latest features, but
some may be incomplete, and you may encounter bugs and crashes. If you
require a stable version of LilyPond, we recommend using the 2.18
* don't duplicate entries from news-new.itexi
@end ignore
+@newsItem
+@subheading LilyPond 2.19.61 released @emph{May 21, 2017}
+
+We are happy to announce the release of LilyPond
+2.19.61. This release includes a number of enhancements, and contains some
+work in progress. You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes. If you
+require a stable version of LilyPond, we recommend using the 2.18
+version.
+
+@newsEnd
+
+@newsItem
+@subheading LilyPond 2.19.60 released @emph{May 08, 2017}
+
+We are happy to announce the release of LilyPond
+2.19.60. This release includes a number of enhancements, and contains some
+work in progress. You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes. If you
+require a stable version of LilyPond, we recommend using the 2.18
+version.
+
+@newsEnd
+
@newsItem
@subheading LilyPond 2.19.59 released @emph{April 09, 2017}
PACKAGE_NAME=LilyPond
MAJOR_VERSION=2
MINOR_VERSION=19
-PATCH_LEVEL=61
+PATCH_LEVEL=63
MY_PATCH_LEVEL=
VERSION_STABLE=2.18.2
-VERSION_DEVEL=2.19.60
+VERSION_DEVEL=2.19.62
extern Variable make_safe_lilypond_module;
extern Variable make_span_event;
extern Variable markup_p;
+ extern Variable markup_command_signature;
extern Variable markup_list_p;
extern Variable midi_program;
#if !GUILEV2
int scan_shorthand (const string&);
int scan_scm_id (SCM);
int identifier_type (SCM);
+ void push_markup_predicates (SCM sig);
char escaped_char (char) const;
const char *YYText_utf8 ();
sval = eval_scm (sval, hi, '$');
+ if (YYSTATE == markup && ly_is_procedure (sval))
+ {
+ SCM sig = Lily::markup_command_signature (sval);
+ if (scm_is_true (sig))
+ {
+ yylval = sval;
+ int token = MARKUP_FUNCTION;
+ if (scm_is_true (scm_object_property
+ (sval, ly_symbol2scm ("markup-list-command"))))
+ token = MARKUP_LIST_FUNCTION;
+ push_markup_predicates (sig);
+ return token;
+ }
+ }
int token = scan_scm_id (sval);
if (!scm_is_eq (yylval, SCM_UNSPECIFIED))
return token;
// value (for token type MARKUP_FUNCTION or
// MARKUP_LIST_FUNCTION).
- push_extra_token (here_input (), EXPECT_NO_MORE_ARGS);
- s = scm_cdr(s);
- for (; scm_is_pair(s); s = scm_cdr(s)) {
- SCM predicate = scm_car(s);
-
- if (scm_is_eq (predicate, SCM (Lily::markup_list_p)))
- push_extra_token (here_input (), EXPECT_MARKUP_LIST);
- else if (scm_is_eq (predicate, SCM (Lily::markup_p)))
- push_extra_token (here_input (), EXPECT_MARKUP);
- else
- push_extra_token (here_input (), EXPECT_SCM, predicate);
- }
+ push_markup_predicates (scm_cdr (s));
+
return token_type;
}
[^$#{}\"\\ \t\n\r\f]+ {
}
+void
+Lily_lexer::push_markup_predicates (SCM sig)
+{
+ push_extra_token (here_input (), EXPECT_NO_MORE_ARGS);
+ for (SCM s = sig; scm_is_pair(s); s = scm_cdr(s)) {
+ SCM predicate = scm_car(s);
+
+ if (scm_is_eq (predicate, SCM (Lily::markup_list_p)))
+ push_extra_token (here_input (), EXPECT_MARKUP_LIST);
+ else if (scm_is_eq (predicate, SCM (Lily::markup_p)))
+ push_extra_token (here_input (), EXPECT_MARKUP);
+ else
+ push_extra_token (here_input (), EXPECT_SCM, predicate);
+ }
+}
+
+
int
Lily_lexer::identifier_type (SCM sid)
{
Variable make_safe_lilypond_module ("make-safe-lilypond-module");
Variable make_span_event ("make-span-event");
Variable markup_p ("markup?");
+ Variable markup_command_signature ("markup-command-signature");
Variable markup_list_p ("markup-list?");
Variable midi_program ("midi-program");
#if !GUILEV2
%}
-\version "2.19.60" % necessary for upgrading to future LilyPond versions.
+\version "2.19.62" % necessary for upgrading to future LilyPond versions.
\header{
title = "A scale in LilyPond"
%}
-\version "2.19.60" % necessary for upgrading to future LilyPond versions.
+\version "2.19.62" % necessary for upgrading to future LilyPond versions.
\header{
title = "A scale in LilyPond"
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: lilypond 2.19.60\n"
+"Project-Id-Version: lilypond 2.19.62\n"
"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu."
"lilypond.bugs\n"
-"POT-Creation-Date: 2017-05-07 11:40+0100\n"
+"POT-Creation-Date: 2017-06-10 12:21+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Encountered unprocessed marker %s\n"
msgstr ""
-#: abc2ly.py:1389 convert-ly.py:85 lilypond-book.py:122 midi2ly.py:1061
+#: abc2ly.py:1393 convert-ly.py:85 lilypond-book.py:122 midi2ly.py:1061
#, python-format
msgid "%s [OPTION]... FILE"
msgstr ""
-#: abc2ly.py:1390
+#: abc2ly.py:1394
#, python-format
msgid ""
"abc2ly converts ABC music files (see\n"
"%s) to LilyPond input.\n"
msgstr ""
-#: abc2ly.py:1398 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231
+#: abc2ly.py:1402 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231
#: midi2ly.py:1112 musicxml2ly.py:2774 main.cc:184
msgid "show version number and exit"
msgstr ""
-#: abc2ly.py:1401 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140
+#: abc2ly.py:1405 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140
#: midi2ly.py:1079 musicxml2ly.py:2755 main.cc:163
msgid "show this help and exit"
msgstr ""
-#: abc2ly.py:1404 etf2ly.py:1209 midi2ly.py:1088
+#: abc2ly.py:1408 etf2ly.py:1209 midi2ly.py:1088
msgid "write output to FILE"
msgstr ""
-#: abc2ly.py:1407
+#: abc2ly.py:1411
msgid "be strict about success"
msgstr ""
-#: abc2ly.py:1410
+#: abc2ly.py:1414
msgid "preserve ABC's notion of beams"
msgstr ""
-#: abc2ly.py:1413
+#: abc2ly.py:1417
msgid "suppress progress messages"
msgstr ""
#. "Report bugs in English via %s",
#. or if there is a LilyPond users list or forum in your language
#. "Report bugs in English via %s or in YOUR_LANG via URI"
-#: abc2ly.py:1416 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258
+#: abc2ly.py:1420 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258
#: midi2ly.py:1124 musicxml2ly.py:2917 main.cc:318
#, c-format, python-format
msgid "Report bugs via %s"
(cons arg result-list))))
'()
arg-list))
-
- (interpret-markup layout
- (prepend-alist-chain 'word-space 0 props)
- (make-line-markup
- (make-override-lines-markup-list
- (cons 'word-space
- (chain-assoc-get 'word-space props))
- (if (markup-command-list? args)
- args
- (concat-string-args args))))))
+ (stack-stencil-line 0
+ (interpret-markup-list layout props
+ (if (markup-command-list? args)
+ args
+ (concat-string-args args)))))
(define (wordwrap-stencils stencils
justify base-space line-width text-dir)
lyrics_append(a)
if g == 'w': # vocals
slyrics_append (a)
- if g == 'Q': #tempo
+ if g == 'Q': # tempo
try_parse_q (a)
+ if g == 'R': # Rhythm (e.g. jig, reel, hornpipe)
+ header['meter'] = a
+ if g == 'Z': # Transcription (e.g. Steve Mansfield 1/2/2000)
+ header['transcription'] = a
return ''
return ln