lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Re: How to fix markup horizontal position relative to edge of page


From: juergen . gruen
Subject: RE: Re: How to fix markup horizontal position relative to edge of page
Date: Tue, 11 Apr 2023 14:36:33 GMT
User-agent: freenet-api2

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: benjamin@koine.gr
Gesendet: 11.04.2023 16:14 Uhr
An: juergen.gruen@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.gruen@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-----



reply via email to

[Prev in Thread] Current Thread [Next in Thread]