Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet 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?
-
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
-
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{}.
-
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?
-
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ß
-
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