Thanks, but unfortunately using a backtick and commas seems to produce the same
output. If it’s helpful, here’s the same example with a backtick and commas:
```
\version "2.22.0"
\paper {
scoreTitleMarkup = \markup {
\column {
\fromproperty #'header:piece
\justify-field #'header:instruction
}
}
}
#(define instructions `(
; Using a LilyPond code block does not work.
(1 . ,#{
\markup {
"Does not work"
\score {
\new Staff { c'1 }
\layout { ragged-right = ##t indent = 0 }
}
}
#})
; Using the Scheme form of a markup expression does not work.
(2 . ,(markup #:line (#:simple "Does not work")))
; Using a string works.
(3 . "Works")))
\book {
#(do ((study-number 1 (1+ study-number)))
((> study-number 3))
(let ((header (make-module)))
(module-define! header 'piece (number->string study-number))
(let* (
(instruction (assoc study-number instructions))
(score (scorify-music #{ { c'1 } #})))
(begin
(if instruction (module-define! header 'instruction (cdr instruction)))
(ly:score-set-header! score header)
(add-score score)))))
}
```
> On Dec 2, 2021, at 11:02 AM, David Kastrup <[email protected]> wrote:
>
> Nate Whetsell <[email protected] <mailto:[email protected]>>
> writes:
>
>> I’m trying to programmatically add items to score headers from an alist.
>> This works when an item consists of just a string. I can’t seem to get this
>> to work when an item is a markup, no matter how the markup is entered. Is
>> there some way to store markups in an alist, and then use those markups in a
>> header?
>>
>> Below is an example illustrating the issue I’m having. Any help would be
>> greatly appreciated!
>>
>> Thanks,
>> Nate
>>
>> ```
>> \version "2.22.0"
>>
>> \paper {
>> scoreTitleMarkup = \markup {
>> \column {
>> \fromproperty #'header:piece
>> \justify-field #'header:instruction
>> }
>> }
>> }
>>
>> #(define instructions '(
>> ; Using a LilyPond code block does not work.
>> (1 . #{
>> \markup {
>> "Does not work"
>
> ' introduces a non-evaluated constant expression but you need to
> evaluate #{ ... #} to get a markup. So try
>
> #(define instructions `( ;; note backtick instead of forward tick
> (1 . ,#{ ;; note comma to evaluate one part of the
> ;; quasi-quoted list
>
> --
> David Kastrup