Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: stefanhuglfing am Freitag, 13. Februar 2015, 21:34

Titel: alle Namen gleich rechts ausrichten
Beitrag von: stefanhuglfing am Freitag, 13. Februar 2015, 21:34
im Beispiel unten sind die Namen für die erste Zeile (Sopran Mezzo) an der gleichen Linie rechts ausgerichtet.
Aber der Name für die zweite Zeile (Alt) ist weiter links.
Ich hätte gern alle Namen an der gleichen Linie rechts ausgerichtet.
Ist das möglich?

Darüber hinaus wünsche ich mir noch einen geringeren Abstands zwischen Namen und Notenzeile.

\version "2.18.2"

\score
 {
  <<
   \new Staff
    <<     
     \new Voice
      {
       \voiceOne
       \set Staff.instrumentName = \markup \right-column
        { Sopran \line { Mezzo } }         
       \relative c'
        { c'4 b a g  a2 g }
      }
   
     \new Voice
      {
       \voiceTwo 
       \relative c'
        { e4 e e e  e (fis) d2 }
      }       
    >>
 
   \new Staff 
    {
     \set Staff.instrumentName = \markup \right-column
      { "Alt" } 
     \relative c'
      { a4 g c b c2 b }       
    } 
   >>
   
  \layout { indent = 50 }
 }
Titel: Re: alle Namen gleich rechts ausrichten
Beitrag von: harm6 am Samstag, 14. Februar 2015, 00:15
Hallo,

hier eine halb-automatisierte Möglichkeit, mittels des markup-command 'always-right-aligned'

Setze 'instr-line-width' in \layout auf einen passenden Wert. Falls zu klein wird es nichts mit der Rechtsbündigkeit. Um das besser zu visualisieren empfehle ich \box zu benutzen (ist momentan auskommentiert)

Ansonsen sollte InstrumentName am besten immer in einen \with-Block

Zitat
Darüber hinaus wünsche ich mir noch einen geringeren Abstands zwischen Namen und Notenzeile.

Hier weiß ich nicht genau was Du meinst.
Aber vielleicht hilft rumexperimentieren mit dem override für 'self-alignment-X'

\version "2.18.2"

#(define-markup-command (always-right-aligned layout props args)(markup-list?)
  (let* ((layout-instr-line-width
           (ly:output-def-lookup layout 'instr-line-width))
         (line-width
           (if (null? layout-instr-line-width)
               (begin
                 (ly:warning
                   "\"instr-line-width\" in \\layout not set? Setting to zero.")
                 0)
               layout-instr-line-width)))
   (interpret-markup layout props
     #{
       \markup
         \override #(cons 'line-width line-width)
         \fill-line {
           \null
           \right-column $args
         }
     #})))

\score {
  <<
   \new Staff
    \with {
      instrumentName =
      \markup %\box
        \always-right-aligned {
          \fontsize #4 Sopran
          \with-color #red Mezzo
        }
    }
    <<     
     \new Voice
       \relative c' { \voiceOne c'4 b a g  a2 g }
   
     \new Voice
       \relative c' { \voiceTwo e4 e e e  e (fis) d2 }       
    >>
 
   \new Staff 
     \with {
       instrumentName =
       \markup %\box
         \always-right-aligned {
           \italic Alt
         }
     }
     \relative c' { a4 g c b c2 b }   
   >>
   
  \layout {
    indent = 50
    instr-line-width = 12
    \override Score.InstrumentName.self-alignment-X = 0.8
  }
}



HTH,
  Harm
Titel: Re: alle Namen gleich rechts ausrichten
Beitrag von: Pierre am Samstag, 14. Februar 2015, 00:38
Hallo,
meinst du so etwas?

\version "2.18.2"

\score {
  <<
   \new Staff
   \with {
     \override InstrumentName.self-alignment-X = #RIGHT
     \override InstrumentName.padding = #2
     instrumentName = \markup \right-column  { Sopran Mezzo }   
   }
   <<     
     \new Voice {
       \voiceOne
       \relative c' { c'4 b a g  a2 g }
     }
     \new Voice {
       \voiceTwo 
       \relative c' { e4 e e e  e( fis) d2 }
     }
   >>
   \new Staff 
   \with {
     \override InstrumentName.self-alignment-X = #RIGHT
     \override InstrumentName.padding = #2
     instrumentName = "Alt"
   }
   \relative c' { a4 g c b c2 b }       
  >>
  \layout { indent = 50 }
}

Gruß,
Pierre
Titel: Re: alle Namen gleich rechts ausrichten
Beitrag von: stefanhuglfing am Samstag, 14. Februar 2015, 06:10
perfekt!

beide Vorschläge erfüllen alle meine Wünsche
und zeigen sogar noch mehr Möglichkeiten auf.