On 9/21/10 7:28 PM, "Jeff Epstein" <aliteralmind-lilyp...@yahoo.com> wrote:

> 
> I'm not sure what I'm missing here. Is there a translation between an ly
> property and scheme? "box-padding" does exist in the Internal Reference
> manual,
> and I've not yet found anything in the other manuals, nor in this forum
> (searching for scheme property override), that strike me as relevant.
> 
> If anyone could point me in the right direction, I would appreciate it.
> Thanks.
> 
Excellent question.  Thanks for sharing enough that we could answer it well.

You're doing everything right!  But the \displayMusic function missed a
quote that you need in your argument list--note that it should be
#:override '(box-padding . 0.5)   not
#:override (box-padding . 0.5)
:


%%%%%

#(define-markup-command  (mBox layout props s_boxText)
                                               (string?)
   "Print the given string in a box and small-caps. Example usage:
c4.^\\markup \\mBox \"section a\""

   (interpret-markup layout props
     (markup #:center-align #:override '(box-padding . 0.5) #:box #:caps
s_boxText)))


\relative c' {
  c1^\markup \mBox #"Section a"
}

%%%%%

The purpose of the initial ' is to prevent Scheme from trying to evaluate
the expression inside the parentheses.  Since the ' was missing, it tried to
evaluate box-padding, but box-padding hasn't been defined as a Scheme
variable.  It's just a scheme symbol (which is different).

By putting the ' before (box-padding . 0.5) we accept this as a cons cell
that will be added onto the property alist.

We get so used to prefacing alists with ' that we automatically put them
there in our minds.  I don't know why \displayMusic *didn't* put the quote
there, but the fact that it didn't is a bug.

Could you please file a simple bug report at bug-lilyp...@gnu.org?

Thanks,

Carl


_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to