Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: stefanhuglfing am Sonntag, 15. März 2015, 15:50

Titel: Noten in drei Spalten
Beitrag von: stefanhuglfing am Sonntag, 15. März 2015, 15:50
Ich möchte ein DIN A4 Blatt Querformat in drei Spalten unterteilen und in jeder Spalte Noten unterbringen wie auf einem Flyer.
Für Texte gibt es ja Befehle wie \column und so weiter, aber für Noten habe ich nichts gefunden.
Kann jemand helfen?

Titel: Re: Noten in drei Spalten
Beitrag von: harm6 am Sonntag, 15. März 2015, 16:01
Hallo,

via markup-command \score geht es:

\version "2.19.16"

#(set-default-paper-size "a4" 'landscape)

score-layout =
  \layout {
    line-width = 80
    indent = 4
  }

\markup
  \fill-line {
    \score {
      \new Staff {
        \repeat unfold 48 c''8
      }
      \layout {
        \score-layout
      }
    }
    \score {
      \new Staff {
        \repeat unfold 48 d''8
      }
      \layout {
        \score-layout
      }
    }
    \score {
      \new Staff {
        \repeat unfold 48 e''8
      }
      \layout {
        \score-layout
      }
    }
}

HTH,
  Harm
Titel: Re: Noten in drei Spalten
Beitrag von: stefanhuglfing am Sonntag, 15. März 2015, 21:07
Ja, Danke!

Ich hätte nur logisch denken müssen:
Es geht ja nicht nur \markup innerhalb von \score{},
sondern auch \score innerhalb von \markup{}.
Titel: Re: Noten in drei Spalten
Beitrag von: stefanhuglfing am Sonntag, 15. März 2015, 22:04
zu früh gefreut!

Was ich in meiner ursprünglichen Frage nicht gesagt habe:
Ich bräuchte auch ein paar Zeilen Text über den Noten (und darunter).

Ich habe es probiert mit

\markup {
   \column {
      \markup...
      \score...
      \markup.....
     ....

aber anscheinend geht \markup innnerhalb von \markup{} nicht so einfach.

Hier kommt noch ein (leider nicht kompilierbrer) Code

\version "2.18.2"

#(set-default-paper-size "a4" 'landscape)

score-layout =
  \layout {
    line-width = 80
    indent = 0
  }

\markup
  \fill-line {
    \column {
      \markup { "Text über den Noten" }
       \layout {
          \score-layout
        }
      \score {
        \new Staff {
          \repeat unfold 48 d''8
        }
        \layout {
          \score-layout
        }
      }
     \markup { "Text unter den Noten" }
      \layout {
          \score-layout
        }
    \score {
      \new Staff {
        \repeat unfold 48 e''8
      }
      \layout {
        \score-layout
      }
    }
}

Könnte sich das jemand anschauen?
Titel: Re: Noten in drei Spalten
Beitrag von: trulli am Montag, 16. März 2015, 18:56
Hallo,

du musst \markup schon sagen, ob es den Text nach oben ^\markup oder unten _\markup schreiben soll.

\version "2.19.16"

#(set-default-paper-size "a4" 'landscape)

score-layout =
  \layout {
    line-width = 80
    indent = 4
  }

\markup
  \fill-line {
    \score {
      \new Staff {
       
        c''8^\markup "Text oben" _\markup "Text unten"
        \repeat unfold 47 c''8
      }
      \layout {
        \score-layout
      }
    }
    \score {
      \new Staff {
        \repeat unfold 48 d''8
      }
      \layout {
        \score-layout
      }
    }
    \score {
      \new Staff {
        \repeat unfold 48 e''8
      }
      \layout {
        \score-layout
      }
    }
}


Kleiner Nachtrag:

Für mehrere Zeilen kommt nach ^\markup \column. Mit \override #'(baseline-skip . 2) kannst du den Zeilenabstand verändern.

\version "2.19.16"

#(set-default-paper-size "a4" 'landscape)

score-layout =
  \layout {
    line-width = 80
    indent = 4
  }

\markup
  \fill-line {
    \score {
      \new Staff {
       
        c''8^\markup \override #'(baseline-skip . 2) \column { "Text oben erste Zeile" "Text oben zweite Zeile"}   _\markup "Text unten"
        \repeat unfold 47 c''8
      }
      \layout {
        \score-layout
      }
    }
    \score {
      \new Staff {
        \repeat unfold 48 d''8
      }
      \layout {
        \score-layout
      }
    }
    \score {
      \new Staff {
        \repeat unfold 48 e''8
      }
      \layout {
        \score-layout
      }
    }
}


Gruß
Titel: Re: Noten in drei Spalten
Beitrag von: harm6 am Montag, 16. März 2015, 22:37
Zitat
aber anscheinend geht \markup innnerhalb von \markup{} nicht so einfach.

In der Tat klappt folgendes nicht:
\markup { "foo" { \markup \italic "bar" } "buzz" }
Du kannst aber ein markup vordefinieren und dann aufrufen:
it-mrkp = \markup \italic "bar"
\markup { "foo" \it-mrkp "buzz" }

Ich erachte das allerdings nicht als das Kernproblem, vielmehr habe ich den Eindruck, daß Du mit den verschachtelten Befehlen durcheinander gekommen bist.

Kommentier doch was Du machst, siehe folgendes Beispiel:

\version "2.19.16"

#(set-default-paper-size "a4" 'landscape)

%% Vordefiniertes markup, wird später über die ersten Spalte gesetzt
text-above =
\markup {
  \override #'(line-width . 45)
  \justify-string #"Lorem ipsum dolor sit amet, consectetur
      adipisicing elit, sed do eiusmod tempor incididunt ut labore
      et dolore magna aliqua.


      Ut enim ad minim veniam, quis nostrud exercitation ullamco
      laboris nisi ut aliquip ex ea commodo consequat.


      Excepteur sint occaecat cupidatat non proident, sunt in culpa
      qui officia deserunt mollit anim id est laborum"
}

%% Vordefiniertes markup, wird später unter die ersten Spalte gesetzt
text-below =
\markup {
  \override #'(line-width . 45) %% Spaltenbreite für den Text über score Nr.1
  \justify-string #"text-below text-below text-below text-below text-below
  text-below text-below text-below text-below text-below text-below text-below
  text-below text-below"
}

score-layout =
  \layout {
    line-width = 80
    indent = 4
  }

\markup
  \fill-line {
    %% 1. Spalte
    \column {
      \text-above %% Der Text drüber
      \vspace #2  %% Abstandshalter
      \score {    %% Der 1. score
        \new Staff {
          \repeat unfold 48 c''8
        }
        \layout {
          \score-layout
        }
      }
      \vspace #2  %% Abstandshalter
      \text-below  %% Der Text drunter
    }
   
    %% 2. Spalte
    \column {
      \override #'(line-width . 45)
      \wordwrap {
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
        do eiusmod tempor incididunt ut labore et dolore magna aliqua.
      }
      \vspace #2
      \score {
        \new Staff {
          \repeat unfold 48 d''8
        }
        \layout {
          \score-layout
        }
      }
      \vspace #2
      \rounded-box "Remarks"
    }
   
    %% 3. Spalte
    \column {
      \override #'(line-width . 45)
      \column {
        whatever-text whatever-text whatever-text whatever-text whatever-text
        whatever-text whatever-text whatever-text whatever-text whatever-text
      }
      \vspace #2
      \score {
        \new Staff {
          \repeat unfold 48 e''8
        }
        \layout {
          \score-layout
        }
      }
      \vspace #2
      "Was auch immer"
    }
}



Gruß,
  Harm