Autor Thema: alle Namen gleich rechts ausrichten  (Gelesen 1350 mal)

stefanhuglfing

  • Member
alle Namen gleich rechts ausrichten
« 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 }
 }

harm6

  • Member
Re: alle Namen gleich rechts ausrichten
« Antwort #1 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
« Letzte Änderung: Samstag, 14. Februar 2015, 01:00 von harm6 »

Pierre

  • Member
Re: alle Namen gleich rechts ausrichten
« Antwort #2 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

stefanhuglfing

  • Member
Re: alle Namen gleich rechts ausrichten
« Antwort #3 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.