lilypond-user
[Top][All Lists]
Advanced

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

Re: Multi-line instrument names


From: Nicolas Sceaux
Subject: Re: Multi-line instrument names
Date: Thu, 01 Jun 2006 21:50:48 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (darwin)

Robert Memering <address@hidden> writes:

> Hi all,
>
> I'm very frustrated because I still can't get proper alignment
> of my multi-line instrument names. I wrote a lengthy
> message to this list, including example bitmaps of the
> output, but nobody responded.
> (see http://lists.gnu.org/archive/html/lilypond-user/2006-03/msg00302.html)
>
> Now, several versions later, and after a careful review
> of the relevant sections of the manual, I still don't see
> the error in my code.
>
> But it has to be my error, because if this was the intended
> output, someone using multi-line instrument names would have
> complained...
>
> Below is my source text, I'd be grateful for any hints.

I use the following commands:

#(define-markup-command (hcenter-pad layout props width arg)
  (number? markup?)
  (let* ((arg-stencil (interpret-markup layout props arg))
         (w (interval-length (ly:stencil-extent arg-stencil X)))
         (pad-stencil (ly:make-stencil "" 
                       (cons 0 (if (> w width)
                                0
                                (/ (- width w) 2.0)))
                       '(-0.1 . 0.1))))
   (stack-stencil-line 0 
    (list pad-stencil arg-stencil pad-stencil))))

#(define-markup-command (right-pad layout props pad arg)
  (number? markup?)
  (interpret-markup layout props (markup arg #:hspace pad)))

#(define-markup-command (instruments layout props texts) (markup-list?)
  (interpret-markup layout props
   (make-column-markup
    (map (lambda (m) (markup #:hcenter-pad 18 #:huge m))
     texts))))

#(define-markup-command (instrument-name layout props text) (markup?)
  (interpret-markup layout props
   (markup #:right-pad 1 #:instruments (text))))

instrumentName = 
#(define-music-function (parser location name) (markup?)
  #{ \set Staff . instrument = \markup \instrument-name $name #})

\layout {
  indent = 40 \mm
}

\new StaffGroup <<
  \new Staff <<
    \instrumentName \markup \instruments { "Oboe,"
                                           "Violino I." }
    c''
  >>
  \new Staff <<
    \instrumentName \markup "Violino II."
    g'
  >>
  \new Staff <<
    \instrumentName \markup "Viola."
    \clef "alto"
    e'
  >>
  \new Staff <<
    \instrumentName \markup \instruments { Tutti Bassi. }
    \clef "bass"
    c
  >>
>> 




reply via email to

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