lilypond-user
[Top][All Lists]
Advanced

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

Re: Multi column page setup


From: David Kastrup
Subject: Re: Multi column page setup
Date: Sat, 06 Apr 2013 00:34:52 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Thomas Morley <address@hidden> writes:

> 2013/4/5 Thomas Morley <address@hidden>:
>> 2013/4/5 David Kastrup <address@hidden>:
>>> Thomas Morley <address@hidden> writes:
>>>
>>>> 2013/4/4 David Kastrup <address@hidden>:
>>>>
>>>>>
>>>>> Regarding the "you can't have LilyPond figure out page breaking" angle:
>>>>> maybe
>>>>> <URL:http://code.google.com/p/lilypond/issues/detail?id=1334> is
>>>>> a
>>>>> suitable building block for that.
>>>>>
>>>>> --
>>>>> David Kastrup
>>>>
>>>> \markup \score { ... }  now _can_ handle pageBreak, though, if you try
>>>> (with appropriate settings of line-width)
>>>> \markup \line { \score { ... } \score { ... }  }
>>>> it fails again.
>>>> Found no way around.
>>>
>>> \score must be used in a place where _only_ markup lists are allowed to
>>> be a markup list rather than a single markup.  So something like
>>> \column-lines \score
>>>
>>> --
>>> David Kastrup
>>
>> Couldn't figure it out.
>> \markuplist \column-lines { \score { ... } \score { ... } } places the
>> two scores vertically on top of each other
>
> (forgot to add:)
> and without pageBreak

Well, you'll still need to fiddle with alignment or whatever in order to
get the bottom right, but here is something that should at least give
you a clue:

#(define-markup-list-command (parallel layout props markups-1 markups-2)
   (markup-list? markup-list?)
   (let* ((m1 (interpret-markup-list layout props markups-1))
          (m2 (interpret-markup-list layout props markups-2))
          (l (- (length m1) (length m2))))
     (interpret-markup-list
      layout props
      (map (lambda (a b) (make-override-markup
                          '(word-space . 4)
                          (make-line-markup
                           (list
                            (make-stencil-markup a)
                            (make-stencil-markup b)))))
           (interpret-markup-list
            layout props
            (make-column-lines-markup-list
             (map make-stencil-markup
                  (if (negative? l)
                      (append m1 (make-list (- l) point-stencil))
                      m1))))
           (interpret-markup-list
            layout props
            (make-column-lines-markup-list
             (map make-stencil-markup
                  (if (positive? l)
                      (append m2 (make-list l point-stencil))
                      m2))))))))

\markuplist
\parallel \score { \repeat unfold 300 c'4
                   \layout { line-width = 6\cm }
                 }
\score { \repeat unfold 500 c'2
         \layout { line-width = 8\cm }
       }

-- 
David Kastrup

reply via email to

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