lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: \markup syntax: "" required?


From: Nicolas Sceaux
Subject: Re: \markup syntax: "" required?
Date: Thu, 26 May 2005 22:25:36 +0200
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

> Graham Percival wrote:
>> Is this the expected behavior of \markup ?
>> \relative c'{
>> c4^\markup{ \center-align { on three lines } }
>> c4^\markup{ \center-align { "all one line" } }
>> c4^\markup{ \center-align { { on three lines } } }
>> }
>> I expected the third line to look the same as the second line.  Why
>> isn't
>> { on three lines }
>> treated as a single expression, like "all one line" is?

Mats Bengtsson <address@hidden> writes:

> I agree on the question!

You assume that in the third one, an implicit \line is put before the
inner { ... } block. This used to be done like that, but it changed
some months ago.

The expression
  \center-align { { a b } { c d } } 
is simply equivalent to:
  \center-align { a b c d }

Lists with no command before are unspliced. When there is a command
taking a single markup as an argument before the list, then the
command is "mapped" on the list.

The only implicit \line is the one that is added when the \markup
keyword is followed by {..}.

guile> (display-lily-music #{ r^\markup \bold { a \italic { c { d e } } } #})
{ r^\markup \line { \bold "a" \bold \italic "c" \bold \italic "d" \bold \italic 
"e"}  }

guile> (display-lily-music #{ r^\markup \center-align { { on three lines } } #})
{ r^\markup \center-align { "on" "three" "lines"}  }

If you want to have the inner block treated as a whole line, say it
explicitly:

  \markup{ \center-align { \line { all one line } }


nicolas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]