Hi All,

I’m trying to generate some text markup programmatically that ends of as a 
markup-list (or a centre-column).

I don’t really have a very good grasp on either markup in scheme or the 
relevant macros, but I have something that compiles and generates something. 
However, it generates a bunch of intermediate line commands that mess up my 
formatting.

I’m read the below from here: 
https://lilypond.org/doc/v2.24/Documentation/extending/markup-construction-in-scheme

“The markup-list argument of commands such as #:line, #:center, and #:column 
cannot be a variable or the result of a function call.
(markup #:line (function-that-returns-markups))
is invalid. One should use the make-line-markup, make-center-markup, or 
make-column-markup functions instead,"

However - make-center-markup is not available to call (it is an unbound symbol 
when I hit compile. If anyone could fix the below code for me (or tell me how 
to do so) that would be super helpful.

Thanks

Alex


** N.B. display shows the horizontal/vertical issue, but the code is mainly to 
log the differences between the two outputs

\version "2.24.1"

#(define (psg-string-number-list idx num fontsize)
   (define str (number->string idx))
   (if (>= idx num)
   (markup (#:fontsize fontsize str))
   (markup (#:fontsize fontsize str) (psg-string-number-list (+ idx 1) num 
fontsize))))

#(define (psg-string-numbers copedent fontsize)
  (markup #:center-column ((psg-string-number-list 1 copedent fontsize))))

%% Do this manually 

\displayScheme  \markup \center-column \fontsize #-3 { 1 2 3 }

#(display #{\markup \center-column \fontsize #-3 { 1 2 3 }#})
#(newline)

%% Attempt to do this programmatically

\displayScheme  #(psg-string-numbers 3 -3)

#(display (psg-string-numbers 3 -3))
#(newline)

Reply via email to