bug-lilypond
[Top][All Lists]
Advanced

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

Re: paper spacing variables not being respected for a score inside marku


From: Jason Pratt
Subject: Re: paper spacing variables not being respected for a score inside markup
Date: Sun, 10 Jun 2018 17:10:55 -0400

Aaron, thank you!

I promise this will be my last follow up to this on the bug list.

This example is exactly what I needed! It both shows the solution to
my problem and gives me a better understanding of where the problem is
coming from. I think I had tried to use nonstaff-nonstaff-spacing to
fix my problem previously, but either didn't put it in the right
place, or didn't alter staff-affinity at the same time, which seems to
be required to make the spacing work as desired.

Also, the idea of mixing TeX and LilyPond to better control layout is
intriguing, although I suspect it might make it even harder to track
down layout issues.

Thanks again!
On Sat, Jun 9, 2018 at 9:59 PM Aaron Hill <address@hidden> wrote:
>
> On 2018-06-09 18:11, Jason Pratt wrote:
> > On Sat, Jun 9, 2018 at 5:21 AM Thomas Morley <address@hidden>
> > wrote:
> >> > I'm doing some chords+lyrics song sheets, and trying to achieve a two
> >> > column layout.
> >>
> >> If all you want is to write chords+lyrics, LilyPond may not be the
> >> best tool for this purpose.
> >
> > I tried to keep my example simple. The real sheets will also include
> > things like fret diagrams and tabs of riffs, which lilypond is useful
> > for.
>
> Another thing to consider is to use LilyPond to typeset individual
> elements and then compose them within a larger document.
> `lilypond-book` will let you mix TeX and LilyPond, for instance, if you
> want a lot of control over the layout.
>
> >> > From what I've read, the way to accomplish this is by
> >> > putting scores within a markup block.
> >> >
> >> > This works to get the two columns, but as soon as I do it, the \paper
> >> > variables that are controlling the vertical spacing seem to be
> >> > ignored.
> >>
> >> As soon as you put a score in a markup, you are in markup-mode.
> >> Vertical spacing of multi-line-markups is controlled by 'baseline-skip
> >> and in general not by paper-settings.
> >>
> >> \score in \markup is a markup-command, internally calling the
> >> markup-list-command \score-lines, which outputs a list of stencils
> >> (here each stencil contains one line of chords/lyrics). They are
> >> stacked vertically by \score using 'baseline-skip.
> >>
> >> So all as expected, no bug.
> >
> > When I include \override #'(baseline-skip . 0.5) inside the markup
> > block, only the space between the lyrics and the next chord line is
> > reduced. The space between the chords and the lyrics above them is
> > still very large. Is there some other way to reduce the space between
> > the two systems? Can you make it so that the scores inside the columns
> > of my simple example have the same spacing as the score above?
>
> This is `nonstaff-nonstaff-spacing` that you want to control, since you
> are talking about things within a single system.  Here is a modified
> version of your original code that should achieve what you want:
>
> %%%%
>    \version "2.18.2"
>
>    chordNames = \chordmode {
>      c1 f g a:m \break
>      c f g:7 c \break
>    }
>    words = \lyricmode {
>      \override LyricText.self-alignment-X = #LEFT
>      Here_are some random lyrics
>      These are more lyrics
>    }
>
>    \paper {
>      #(set-paper-size "a6landscape")
>      tagline = ##f
>      indent = #0
>      ragged-right = ##t
>      system-system-spacing =
>        #'((basic-distance . 0)
>          (minimum-distance . 0)
>          (padding . 2)
>          (stretchability . 0))
>    }
>
>    common-layout = \layout {
>      \context { \ChordNames
>        \override VerticalAxisGroup.nonstaff-nonstaff-spacing =
>          #'((basic-distance . 0)
>            (minimum-distance . 0)
>            (padding . 1)
>            (stretchability . 0))
>      }
>      \context { \Lyrics
>        \override VerticalAxisGroup.staff-affinity = #DOWN
>      }
>    }
>
>    \score {
>      <<
>        \new ChordNames \chordNames
>        \new Lyrics \words
>      >>
>      \layout { \common-layout }
>    }
>
>    \markup { \override #'(baseline-skip . 2) {
>      \vspace #3
>      \score {
>        <<
>          \new ChordNames \chordNames
>          \new Lyrics \words
>        >>
>        \layout { \common-layout }
>      }
>      \hspace #8
>      \score {
>        <<
>          \new ChordNames \chordNames
>          \new Lyrics \words
>        >>
>        \layout { \common-layout }
>      }
>    } }
> %%%%
>
> Note that I included the fix for the affinity warning, since lyrics by
> default have an UP affinity whereas chords are DOWN.  Also, I changed
> the alignment of lyrics to LEFT to match the default for chord, so it is
> clearer when chord changes align with words.  But that is more of a
> personal preference.
>
> P.S.  As advised earlier, we should really move any more non-bug
> discussion to lilypond-user.
>
> -- Aaron Hill
>
> _______________________________________________
> bug-lilypond mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/bug-lilypond



-- 
___________________________
Jason Pratt



reply via email to

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