Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: Thadeus Punkt am Donnerstag, 14. März 2013, 18:19
-
Hallo,
Ich habe mal ein Problem für das ich im Forum leider keine Lösung gefunden habe.
Ich möchte gern den Titel linksbündig an der Seite ausgerichtet und unter den Titel eine Linie haben, die über die Gesamte Seiten breite läuft.
Zum Thema "Titel ausrichten" gibt es ja einen recht aktuellen Forumsbeitrag: https://liarchiv.joonet.de/index.php?topic=1345.msg7400#msg7400 (https://liarchiv.joonet.de/index.php?topic=1345.msg7400#msg7400) . Wobei ich nicht wirklich verstehe, wie das funktioniert, da einige Befehle darin vorkommen, die ich nicht erklärt bekomme über die Hilfe und auch der Programm/Dateiaufbau erschließt sich mir nicht.
zum Thema Linie hab ich garnichts gefunden. Latex-Befehle wie \line {} ergeben nur eine Fehlermeldung, wenn ich das in den header mit eintrage.
-
Hallo,
der von Dir schon genannte Thread liefert eigentlich schon die Methode zur Neudefinition des bookTitleMarkup.
In Deinem Fall:
\version "2.16.2"
myBookTitleMarkup = \markup {
\override #'(baseline-skip . 3.5)
\column {
\fill-line { \fromproperty #'header:dedication }
\override #'(baseline-skip . 3.5)
\column {
\line {
\huge \larger \larger \bold
\fromproperty #'header:title
}
\draw-hline
% Other possibility
% \fill-line { \override #'(span-factor . 1/3) \draw-hline }
\fill-line {
\large \bold
\fromproperty #'header:subtitle
}
\fill-line {
\smaller \bold
\fromproperty #'header:subsubtitle
}
\fill-line {
\fromproperty #'header:poet
{ \large \bold \fromproperty #'header:instrument }
\fromproperty #'header:composer
}
\fill-line {
\fromproperty #'header:meter
\fromproperty #'header:arranger
}
}
}
}
\paper { bookTitleMarkup = \myBookTitleMarkup }
\header {
dedication = "DEDICATION"
title = "TITLE"
subtitle = "SUBTITLE"
subsubtitle = "SUBSUBTITLE"
arranger = "ARRANGER"
composer = "COMPOSER"
poet = "POET"
meter = "METER"
}
\markup \null
Falls Du etwas nicht verstehst, dann frag halt. ;)
Gruß,
Harm
-
hallo Thadeus
hast du ein stückchen code von dem was du machen willst?
ich rate mal:
\header {
title = \markup \column {
\fill-line {"mein titel" "" }
\draw-hline
}
}
{c' }sollte den titel nach links rücken
-
Ich möchte gern den Titel linksbündig an der Seite ausgerichtet und unter den Titel eine Linie haben, die über die Gesamte Seiten breite läuft.
[...]
zum Thema Linie hab ich garnichts gefunden. Latex-Befehle wie \line {} ergeben nur eine Fehlermeldung, wenn ich das in den header mit eintrage.
Hallo Thadeus,
es gibt den Markup-Befehl \draw-hline, der eine horizontale Linie über die gesamte Seitenbreite zeichnet - er macht also genau das, was \hline in TeX tut.
Zum Thema "Titel ausrichten" gibt es ja einen recht aktuellen Forumsbeitrag: https://liarchiv.joonet.de/index.php?topic=1345.msg7400#msg7400 (https://liarchiv.joonet.de/index.php?topic=1345.msg7400#msg7400) . Wobei ich nicht wirklich verstehe, wie das funktioniert, da einige Befehle darin vorkommen, die ich nicht erklärt bekomme über die Hilfe und auch der Programm/Dateiaufbau erschließt sich mir nicht.
Im Grunde ist das relativ einfach: Wenn einem die Standard-Titelaubereitung von Lilypond nicht paßt, kann man eigene Markups definieren. Die müssen dann nur in der \paper-Umgebung den richtigen Variablen zugewiesen werden, damit sie an den ensprechenden Stellen eingebunden werden.
Einfachst-Beispiel: der Titel soll nur "Hello, World!" ausgeben, und zwar linksbündig und fett in serifenloser Schrift, darunter eine horizontale Linie über die gesamte Seitenbreite (dann sind wir wieder beim Thema).
\version "2.16.1"
\paper {
bookTitleMarkup = \markup {
\override #'(baseline-skip . 0.5)
\column {
\sans \bold "Hello, World!"
\draw-hline
}
}
}
\relative c' { c1 }
Der \override-Befehl ändert den Zeilenabstand in der darauffolgenden Spalte (\column), damit der vertikale Abstand vor dem Strich Strich nicht so groß ist.
Analog zu bookTitleMarkup gibt es z. B. noch foot scoreTitleMarkup, das vor jedem \score gedruckt wird oder oddHeaderMarkup/evenHeaderMarkup für die ungeraden und geraden Kopfzeilen usw.
Diese Markups kann man allerdings ziemlich komplex aufbauen; der Zugriff auf Variablen, die man im \header definiert hat (wie title, composer usw.) geschieht über \fromproperty #'header:title oder \fromproperty #'header:composer.
Im Prinzip kann man dort also alles tun, was einem die \markup-Umgebung bietet. Das würde hier allerdings den Rahmen sprengen.
Wenn Du spezifische Fragen zu Harms Lösung hast, kannst Du sie hier ja stellen - Du wirst sicher Antwort erhalten.
Viele Grüße
Torsten
PS: Jetzt habe ich so lange herumgetrödelt, daß inzwischen Harm und Eluze schon geantwortet haben. :)
-
Vielen Dank an euch drei, ihr habt mein Problem gelöst. Und was noch interssant ist, das Ihr auch gleich Lösung mitgegeben habt für die Fragen die mir bei dem Ausprobieren Eurer Vorschläge gekommen sind.
Harm6's Vorschlag ist mein Favorit, um in ein MasterTemplate aufgenommen zu werden. Womit ich aber nicht zurecht kam, war der Abstand der Linie zum Titel. Ich habe da mal mit den Werten rumgespielt, aber bin nicht zu einem guten Ergebniss gekommen. Der Zweite \override #'(baseline-skip . 3.5) Befehl zieht zwar die Linie an den Titel heran, wenn man den Wert vermindert, aber es ist ein Verhältnis-wert, der Abstand zu den nachfolgenden Text wird proportional verringert. Das heißt irgendwann, wenn der Wert zu klein ist, läuft alles in einander. Daher hat mir der Vorschlag von Be-3 gut gefallen, bei dem die Linie sehr nah an dem Titel war. Wobei ja nicht der richtige "Titel" genutzt wurde sondern über bookTitleMarkup
Was mir bei Eluze sehr gut gefallen hat, ist die Möglichkeit einen zweiten Text auf der anderen Seite der Titelzeile zu erzeugen. Ich hatte mich schon im Vorfeld gefragt ob das irgendwie möglich ist. Ist sehr praktisch wenn man zB eine Liednummer angezeigt haben möchte.
Deshalb habe ich mal title = \markup \column {
\fill-line {"MEIN NEUER TITEL" "232" }
}hinter den Titel bei Harm6 seinen Vorschlag eingesetzt, und es hat funktioniert. Ob das jetzt aber die eleganteste Lösung ist, kann ich nicht sagen.
-
Hallo,
Ob das jetzt aber die eleganteste Lösung ist, kann ich nicht sagen.
nun, wie Torsten schon sagte, falls Du bookTitleMarkup neu definierst so denke daran: Es ist ein markup.
All die üblichen markup-commands können verwendet werden (und wenn etwas spezielles fehlt kann man ja im forum fragen :) )
Eluzes Methode ist quick'n dirty und dabei auch die Methode, die ich selbst für kleinere Sachen meistens verwende.
Bei größeren Projekten ist die Neudefinition von bookTitleMarkup, aber vor allem scoreTitleMarkup besser.
Was genau für Dich am besten ist kann ich nicht sagen, denn Du hast nicht geschrieben/gezeigt was Dir letztlich vorschwebt.
Anstatt mein übliches mantra erneut zu rezitieren nehme ich heute mal Eluzes: ;)
hast du ein stückchen code von dem was du machen willst?
Gruß,
Harm
-
hallo Harm
Eluzes Methode ist quick'n dirty
von wegen dirty? - eher quick'n simple + dadurch schon fast genial!
Bei größeren Projekten ist die Neudefinition von bookTitleMarkup, aber vor allem scoreTitleMarkup besser.
besser? - ich sage: (leider) erforderlich - ich finde aber, dass das lilypond team eine sehr gültige + immer wiederverwendbare vorlage geschaffen hat
gruss
Eluze
-
Also, was ich machen will ist recht simpel. Ich will mir einfach ein Mastertemplate für ein Notenblatt erstellen, was ich dann als Leadsheet für mich und meine Band nutzen kann. Mit der Option, da auch mal was spezielles wie eine Gitarrenspur oder Klavier mit einzubauen. Ich hab da schon mal begonnen, das Template aus Frescobaldi mir einbisschen umzuarbeiten. Und da ich vorher schon ein paar Notensatzprogramme ausprobiert habe, finde ich, das LilyPond für mich die Beste Wahl ist. Sei es, weil es am flexibelsten ist, weil es auch unter Linux läuft, und weil es das beste Preis-Leitungsverhältnis hat. :-)
zurück zum Thema:
Unten habe ich mal das bissherige Ergebnis gepostet: wobei ich mit dem Abstand der Linie zum Titel noch nicht richtig zufrieden bin. Ich hätte sie gern etwas näher.
\version "2.16.2"
myBookTitleMarkup = \markup {
\override #'(baseline-skip . 3.5)
\column {
\fill-line { \fromproperty #'header:dedication }
\override #'(baseline-skip . 3.5)
\column {
\line {
\huge \larger \larger \bold
\fromproperty #'header:title
}
\draw-hline
% Other possibility
% \fill-line { \override #'(span-factor . 1/3) \draw-hline }
\fill-line {
\large \bold
\fromproperty #'header:subtitle
}
\fill-line {
\smaller \bold
\fromproperty #'header:subsubtitle
}
\fill-line {
\fromproperty #'header:poet
{ \large \bold \fromproperty #'header:instrument }
\fromproperty #'header:composer
}
\fill-line {
\fromproperty #'header:meter
\fromproperty #'header:arranger
}
}
}
}
\header {
dedication = "DEDICATION"
title = \markup \column {
\fill-line {"Titel" "333" }
}
subsubtitle = "Subtitel"
poet = "Text:"
composer= "Musik:"
arranger = "Satz:"
copyright = \markup { \char ##x00A9 "??? - Verlag" }
}
\paper {
bookTitleMarkup = \myBookTitleMarkup
#(set-paper-size "a4")
markup-system-spacing #'basic-distance = #28
%system-system-spacing #'basic-distance = #20
% left-margin #'basic-distance = #22
% right-margin #'basic-distance = #22
top-margin = 10 \mm
bottom-margin = 10 \mm
%last-bottom-spacing = 20 \mm
two-sided = ##t
inner-margin = 10 \mm
outer-margin = 20 \mm
}
global = {
\key c \major
\time 4/4
%\partial 2
\tempo 4=92
}
classicalGuitar = \relative c' {
\global
c1
}
chordNames = \chordmode {
\global
\override
ChordName
#'font-size = #4
%\override
%ChordName
%#'color = #red
\override
ChordName
#'font-family = #'roman
\set chordChanges = ##t
c
}
melody = \relative c'' {
\global
c4 c c c
}
verseOne = \lyricmode {
Tra -- la -- lla _
}
verseTwo = \lyricmode {
%Text hier
}
verseThree = \lyricmode {
\set stanza = "3."
%Text hier
}
right = \relative c'' {
\global
c1
}
left = \relative c' {
\global
c1
}
classicalGuitarPart = \new TabStaff \with {
stringTunings = #guitar-tuning
midiInstrument = "acoustic guitar (nylon)"
\consists "Instrument_name_engraver"
instrumentName = "Gt."
} \classicalGuitar
leadSheetPart = <<
\new ChordNames \chordNames
\new Staff { \melody }
\addlyrics { \verseOne }
\addlyrics { \verseTwo }
%\addlyrics { \verseThree }
>>
pianoPart = \new PianoStaff \with {
instrumentName = "Klav."
} <<
\new Staff = "right" \with {
midiInstrument = "acoustic grand"
} \right
\new Staff = "left" \with {
midiInstrument = "acoustic grand"
} { \clef bass \left }
>>
\score {
<<
\classicalGuitarPart
\leadSheetPart
\pianoPart
>>
\layout { #(layout-set-staff-size 20) }
\midi { }
}
-
versuchs mal mit \hspace #… zu steuern!
sonst gibts noch diese geniale lösung: http://lists.gnu.org/archive/html/lilypond-user/2010-04/msg00057.html
Eluze
-
Hallo Thadeus,
Und da ich vorher schon ein paar Notensatzprogramme ausprobiert habe, finde ich, das LilyPond für mich die Beste Wahl ist. Sei es, weil es am flexibelsten ist, weil es auch unter Linux läuft, und weil es das beste Preis-Leitungsverhältnis hat. :-)
ich bin natürlich auch ein LilyPond-Fan :D.
Was das Preis-Leitungsverhältnis angeht, so muß man sagen, daß LilyPond natürlich als open-source Projekt erstmal "umsonst" zu haben ist.
Wir haben jedoch das Problem, daß unsere Personaldecke recht dünn ist. Zum Beispiel die Anzahl der aktiven Entwickler, die Anzahl der bug-squad-Mitglieder (frag Eluze!), LSR-Contributors, LSR-Upgrader, Fragenbeantworter in Foren, mailing-lists etc.
Es müssen halt viele Sachen erledigt werden, um LilyPond am laufen zu halten und weiterzuentwickeln. Falls wir nicht genug Mitarbeiter haben/halten können, so wird LilyPond einen langsamen Tod sterben.
Insoweit bitte ich Dich und jeden anderen nicht schon jetzt Aktiven darüber nochzudenken, ob Du/Ihr nicht irgendetwas zum Gelingen des Gesamt-Projektes beitrageen könnt.
-> http://lilypond.org/website/help-us.de.html (http://lilypond.org/website/help-us.de.html)
Man braucht wirklich kein LilyPond-Meister zu sein, um sinnvoll mitarbeiten zu können.
Darüberhinaus bzw anstatt dessen bitte ich Dich/Euch zu bedenken, ob ihr nicht David Kastrup, core developer, finanziell unterstützen könnt.
Siehe meinen Post hier. (https://liarchiv.joonet.de/index.php?topic=1222.0)
Zum eigentlichen Thema:
Erstmal vielen Dank für Deinen Code! Es verbleibt noch die Frage, ob Du Dich auf einzelne Partituren beschränkst, oder ob Du sie in einem \book mit \bookparts sammeln möchtest.
Unten habe ich mal das bissherige Ergebnis gepostet: wobei ich mit dem Abstand der Linie zum Titel noch nicht richtig zufrieden bin. Ich hätte sie gern etwas näher.
Ich habe myBookTitleMarkup ein klein wenig verändert. Ich hoffe es kommt Deinen Vorstellungen entgegen.
myBookTitleMarkup = \markup {
\override #'(baseline-skip . 3.5)
\column {
\fill-line { \fromproperty #'header:dedication }
\override #'(baseline-skip . 3.5)
\column {
\line {
\override #'(baseline-skip . 1)
\column {
\huge \larger \larger \bold
\fromproperty #'header:title
\draw-hline
% Other possibility
% \fill-line { \override #'(span-factor . 1/3) \draw-hline }
\vspace #1
}
}
\fill-line {
\large \bold
\fromproperty #'header:subtitle
}
\fill-line {
\smaller \bold
\fromproperty #'header:subsubtitle
}
\fill-line {
\fromproperty #'header:poet
{ \large \bold \fromproperty #'header:instrument }
\fromproperty #'header:composer
}
\fill-line {
\fromproperty #'header:meter
\fromproperty #'header:arranger
}
}
}
}
HTH,
Harm
-
Hallo harm,
Vielen Dank, das ist genau so, wie ich es mir vorgestellt habe.
Es verbleibt noch die Frage, ob Du Dich auf einzelne Partituren beschränkst, oder ob Du sie in einem \book mit \bookparts sammeln möchtest.
Also, ich werde erstmal bei den Partituren bleiben.
Zu deinem Hinweis mit der Frage nach der Hilfe: In Lilypond und beim Notensetzen bin ich eher noch Anfänger. Bei Fortgeschrittenem Notensetzen könnte ich nicht den Bug vom Feature auseinanderhalten. Auch bestehen meine Englischkentnisse nur aus einem recht überschaubaren Wortschatz. Aber ich werd mal schauen was ich tun kann. Auch bei dem mit David Kastrup.
VG
Th.