This
#{ line-width = #(+ lw ind) indent = #ind short-indent = #ind #}
is part of the scheme procedure. You can use lilypond syntax - put into #{ ...#} - in scheme procedures. I create a new layout-block in the procedure. You can not nest layout blocks but you can have parallel layout-blocks. So copy the procedure-call into your score but not into your own layout block:
\version "2.24.0" #(define (set-score-width lw) (let* ( (pw (ly:output-def-lookup $defaultpaper 'paper-width)) (lmd (ly:output-def-lookup $defaultpaper 'left-margin-default)) (rmd (ly:output-def-lookup $defaultpaper 'right-margin-default)) (ind (/ (- pw lmd rmd lw) 2))) #{ \layout { line-width = #(+ lw ind) indent = #ind short-indent = #ind } #} )) % end of scheme code \score { %%%% procedure call #(set-score-width 120) %%%% your own layout block \layout { % do something } \repeat unfold 20 \relative c { c' d e f g a b } } \markup \wordwrap-string "Bacon ipsum dolor amet hamburger aliqua incididunt sunt in. Excepteur consequat ad laboris anim flank jowl. Irure drumstick shoulder dolor. Cupim tri-tip meatloaf prosciutto leberkas." HTH, Juergen.
-----ursprüngliche Nachricht----- Von: benja...@koine.gr Gesendet: 11.04.2023 16:14 Uhr An: juergen.gr...@xyz.de, lilypond-user@gnu.org Betreff: Re: How to fix markup horizontal position relative to edge of page
Quick question, in the scores I am working on I already have a \layout block with several other settings within it. How can I insert just the line-width, indent, and short-indent settings into the already-existent \layout block without creating another one? If I try just #{ line-width = #(+ lw ind) indent = #ind short-indent = #ind #} for my LilyPond code block, it gives me the error "not a note name: line-width". Thanks for your Scheme expertise :) 𐑪𐑯 2023-04-11 𐑨𐑑 07:38, Benjamin Bruce 𐑮𐑴𐑑: > This is exactly what I needed. I figured it could be done with some > Scheme code, but that's beyond my knowledge. Thanks so much for your > help! > > 𐑪𐑯 2023-04-11 𐑨𐑑 03:55, juergen.gr...@xyz.de 𐑮𐑴𐑑: >> OK, this was not correct. There is a left-margin-default set and the >> indent does not shift the line but makes it shorter(?) Here is another >> approach: >> >> %%%%%%%%%%%%%%%%%%%%%%%% >> >> \version "2.24.0" >> >> #(define (set-score-width lw) >> (let* ( >> (pw (ly:output-def-lookup $defaultpaper 'paper-width)) >> (lmd (ly:output-def-lookup $defaultpaper 'left-margin-default)) >> (rmd (ly:output-def-lookup $defaultpaper 'right-margin-default)) >> (ind (/ (- pw lmd rmd lw) 2))) >> >> #{ \layout { >> line-width = #(+ lw ind) >> indent = #ind >> short-indent = #ind >> } #} )) >> >> \score { >> #(set-score-width 120) >> \repeat unfold 20 \relative c { c' d e f g a b } >> } >> >> \markup \wordwrap-string "Bacon ipsum dolor amet hamburger aliqua >> incididunt sunt in. Excepteur consequat ad laboris anim flank jowl. >> Irure drumstick shoulder dolor. Cupim tri-tip meatloaf prosciutto >> leberkas." >> >> %%%%%%%%%%%%%%%%%%%%%%%% >> >> Juergen.
-----ursprüngliche Nachricht Ende-----