On Sun, Nov 18, 2012 at 2:34 AM, Thomas Morley < [email protected]> wrote:
> 2012/11/17 Olivier Biot <[email protected]>: > > Is there a more elegant and less verbose way than the following approach > to > > add a 3-column section for documenting editorial changes to scores? > > > > %% BEGIN > > \version "2.16.0" > > > > % LSR snippet: http://lsr.dsi.unimi.it/LSR/Snippet?id=464 > > #(define-markup-command (columns layout props args) (markup-list?) > [...] > > Hi Olivier, > > I do like this \columns-command and from my point of view it > _is_elegant and _not_ verbose. > Hi Thomas, Thanks again for your reply! What I mean, is that centering the section headers is done differently (and actually, incorrectly, since the section words have a different length) than arranging the 3 text columns. I fixed the heading centering by writing this: %% BEGIN snippet 1 \markup { \rounded-box \center-column { % Notes section header: \huge \bold \columns { \column { \fill-line { \hspace #.1 Bemerkungen \hspace #.1 } } \column { \italic { \fill-line { \hspace #.1 Remarques \hspace #.1 } } } \column { \fill-line { \hspace #.1 Notes \hspace #.1 } } } % Notes section header: % (as in initial message) % Music annotation: % (as in initial message) } } %% END snippet 1 So it is apparently rather difficult to center a text word in a column where the column width has been fixed (in this case, to 1/3 of the text width). I need to write the following construct if I want my text centered: %% BEGIN snippet 2 \column { \fill-line { \hspace #.1 Bemerkungen \hspace #.1 } } %% END snippet 2 > I'd recommend to store more stuff in variables. > That will require a better understanding of the LilyPond / Guile tandem, as I'm still used to think in a more traditional way, i.e. in terms of "is there some repetitive task I'm using which could benefit from a method call instead of writing the same code over and over", but I still lack the proper Scheme coding skills as well as a better understanding of how the LilyPond / Guile tandem works. How would you write a method that takes e.g. a string literal as input (Bemerkungen) and produces the LilyPond code to center the text in a column (see snippet 2)? Or should I think in terms of centering a markup instead of a string literal (e.g. \italic { Remarques }? If you prefer a version without \columns you may want to use this: > [...] > \markup > \override #'(box-padding . 1) > \rounded-box \center-column { > \fill-line { \txt¹ \txt² \txt³ } > \vspace #0.1 > \mus > } > This brings me to actually another problem I'm bumping into: I still have difficulties understanding the way \vspace works. Right now it looks like it's inhereited from TeX (rubber space). Sometimes I want to put a well-defined nonelastic vertical spacing, but \vspace does not allow this (try typing \vspace 1\cm). Besides, I see no difference in my output between \vspace #1 or \vspace #.01. Finally, it would be great if the \columns macro could provide a way to specify padding between columns as well as vertical padding between "rows", similar to the way "\override #'(box-padding . 1)" works for \box. Best regards, Olivier
_______________________________________________ lilypond-user mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-user
