On Thu, 2026-08-13 at 18:49 +0200, David Kastrup wrote:
> Richard Shann <[email protected]> writes:
>
> > On Thu, 2026-08-13 at 12:16 +0100, Richard Shann wrote:
> > > On Thu, 2026-08-13 at 11:05 +0200, Lukas-Fabian Moser wrote:
> > > > Hi Richard,
> > > >
> > > > Am 13.08.26 um 10:55 schrieb Richard Shann:
> > > > > Is there a way of putting something like
> > > > > medium = \normal-weight
> > > > > in a header file to convert from uses of \medium in markup in
> > > > > LilyPond
> > > > > 2.24 to pass 2.26 (so as to aviud going through physically
> > > > > replacing
> > > > > \medium with \normal-weight?)
> > > > > The above doesn't work, I guess because it's being invoked
> > > > > inside
> > > > > markup...
> > > >
> > > > The syntax is a bit more complicated in the case of markup
> > > > functions:
> > > >
> > > > \markup medium = \markup \normal-weight \etc
> > >
> > > Perfect! Thank you very much.
> >
> > I looked up the docs on using ly:version? to allow older files to
> > be
> > typeset in older or newer syntax and I understood this should work:
> >
> > #(if (ly:version? > '(2 24))
> > #{ \markup medium = \markup \normal-weight \etc #})
>
> Then the docs are really wrong. #{ ... #} generally is for creating
> expressions, not side effects, and an assignment is a side effect.
>
> > gives
> > \markup medium = \markup \normal-weight \etc
> > /tmp/frescobaldi-oorxliqz/tmp7qct88s5/document.ly:4:17: error:
> > syntax
> > error, unexpected '='
> >
> > I didn't manage to nail down an explanation of #{ ... #} but it
> > seemed
> > like it was for inserting LilyPond syntax at that point in the
> > file.
>
> No. It isn't for "inserting LilyPond syntax" but it is for writing
> expressions utilizing LilyPond syntax instead of Scheme syntax.
>
> For older versions, you'd probably have to use something like
>
> #(define-markup-command (medium layout props arg) (markup?)
> (interpret-markup layout props
> #{ \markup \normal-weight arg #}))
Thanks! That did the trick:
#(if (ly:version? > '(2 25))
(define-markup-command (medium layout props arg) (markup?)
(interpret-markup layout props
#{ \markup \normal-weight arg #})))
Richard