[prev in list] [next in list] [prev in thread] [next in thread]
List: lilypond-user
Subject: Re: Combining multiple markups into a single, word-wrappable one?
From: David Kastrup <dak () gnu ! org>
Date: 2020-07-28 23:06:21
Message-ID: 87tuxrdytu.fsf () fencepost ! gnu ! org
[Download RAW message or body]
David Kastrup <dak@gnu.org> writes:
> Aaron Hill <lilypond@hillvisions.com> writes:
>
>> On 2020-07-28 10:15 am, David Kastrup wrote:
>>> Aaron Hill <lilypond@hillvisions.com> writes:
>>>
>>>> Feels like a hack, but would this help?
>>>> %%%%
>>>> \version "2.20.0"
>>>> loremIpsum = \markuplist {
>>>> \bold { Lorem ipsum } dolor sit amet,
>>>> \italic consectetur adipiscing elit.
>>>> }
>>>> \markup {
>>>> \override #'(line-width . 40)
>>>> \wordwrap { $@loremIpsum $@loremIpsum $@loremIpsum }
>>>> }
>>>> %%%%
>>> Why $@loremIpsum rather than \loremIpsum ?
>>
>> Because it does not work:
>>
>> ====
>> GNU LilyPond 2.20.0
>> Processing `markuplist.ly'
>> Parsing...
>> markuplist.ly:11:39: error: not a markup
>> \wordwrap { \loremIpsum \loremIpsum
>> \loremIpsum }
>> /usr/local/lilypond/usr/share/lilypond/current/scm/lily.scm:1093:21:
>> In procedure reverse! in expression (ly:parse-file file-name):
>> /usr/local/lilypond/usr/share/lilypond/current/scm/lily.scm:1093:21:
>> Wrong type argument in position 1: ("" (#<procedure bold-markup
>> (layout props arg)> "Lorem") "elit." "adipiscing" (#<procedure
>> italic-markup (layout props arg)> "consectetur") "amet," "sit" "dolor"
>> (#<procedure bold-markup (layout props arg)> "ipsum") . #-7#)
>> ====
>>
>>
>> -- Aaron Hill
>
> Ouch. It does work. Once. You call \loremIpsum more than once.
> LilyPond operates under the premise "I can destroy input since it either
> exists only once or is a copy" which is correct for music expressions.
> But \loremIpsum does not create a copy. There is no copying guarantee
> for non-music expressions in that manner.
>
> I have to see where we mess with markup expression input in that manner.
> Hopefully not in too many places.
>
> So basically: it is supposed to work, but if people work around bugs (on
> the assumption that LilyPond is weird enough that bombing out with some
> strange error message on sane looking input means the user made a
> mistake) rather than reporting them, stuff like this can go unnoticed
> for long amounts of time.
<https://gitlab.com/lilypond/lilypond/-/merge_requests/284>
--
David Kastrup
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic