Aha!  Yes, that works.  Now I've been able to go in and the rest of my markup stuff.

Thanks.

On 10/1/2024 3:12 PM, David Kastrup wrote:
Walt North <[email protected]> writes:

Thank. well that got me a step farther.  However now I see that this works
without curly braces around the \markup...Examples below.  I'm not that
familiar with guile so it's probably related to how variables work in
guile. The end goal is to have a fair amount of template stuff in the
function with some variables passed in to fill in some gaps.
\version "2.24.4"

hdr =
#(define-scheme-function (name) (string?)
    #{
      \header {
      title = \markup #name
      }
    #})
\hdr "test"
%\header { title = test }
\score {
{c4 d e f}
}

This throws an error.
hdr =
#(define-scheme-function (name) (string?)
    #{
      \header {
      title = \markup {#name}
      }
    #})
# starts a Scheme expression.  Identifiers in Scheme are separated by
spaces, parens and quote marks.  So you are asking Scheme to fill in a
variable called name} (including a closing curly brace) and Scheme does
not know such a variable.  Also the closing curly brace you included in
the variable name is then leaving an unmatched opening curly brace in
its wake.

Guile signaled an error for the expression beginning here

title = \markup {#

name}


Unbound variable: #{name\x7d;}#
Which tells you exactly that, just in a contorted manner.

C:/Users/waltn/AppData/Local/Temp/frescobaldi-hg83vfc9/tmpix0jvon3/document.ly:8:7
<1>: error: syntax error, unexpected end of input

}
And here is what the missing closing brace then caused.

Anyway, even if properly separated with spaces, the curly braces are
spurious.  What do you hope to achieve with them?


Reply via email to