Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: Jolander am Sonntag, 10. November 2013, 16:27
-
Hallo an alle,
kann ja sein, das wir das schon hatten, aber dennoch:
Ich möchte den Titel:
\header{
title= \markup{"Wie der Titel heist soll hier eigentlich keine rolle spielen, er ist nur so lang, das er in mehere Zeilen muss"}
}
in mehreren Zeilen ausgeben. Wie geht das?
Guido
-
Hallo an alle,
kann ja sein, das wir das schon hatten, aber dennoch:
sollen wir für dich suchen gehn? :o
-
Hallo Eluze,
sollen wir für dich suchen gehn?
Ja bitte, ich find es nämlich nicht :'(
LG
Guido
-
hallo Jolander
hier sind alle markup commands gelistet: http://www.lilypond.org/doc/v2.17/Documentation/notation/text-markup-commands
vielleicht ist auch hier was interessantes zu finden: http://www.lilypond.org/doc/v2.17/Documentation/notation/text-markup-list-commands
viel Erfolg
Eluze
-
Und das bei meinem Englisch:
\version "2.16.2"
\header {
mytitle = "Wie der Titel heist soll hier eigentlich keine rolle spielen, er ist nur so lang, das er in mehere Zeilen muss"
title = \markup {\center-column {\fill-line { \justify-field #'header:mytitle }}}
}
\relative c' {
c d e f
}
Wäre dann zweizeilig, aber leider nicht zentriert!
Wie stelle ich das ein?
Gruß
Guido
-
Wäre dann zweizeilig, aber leider nicht zentriert!
Wie stelle ich das ein?
vielleicht hilft da http://lsr.dsi.unimi.it/LSR/Item?id=765 ?
Eluze
-
Nö!
Ohne Headerumgebung klappt es, aber
In die \header Umgebung eingebaut:
\version "2.16.2"
\header {
mytitle =" Wie der Titel heist soll hier eigentlich keine rolle spielen, er ist nur so lang, das er in mehere Zeilen muss"
title = \markup {\column {\fill-line {\override #'(line-width . 80) \text-center { \justify-field #'header:mytitle }}}}
}
\relative c' {
c d e f
}
verursacht \text-center eine Fehlermeldung.
Gruß
Guido
-
Nö!
Ohne Headerumgebung klappt es, aber
In die \header Umgebung eingebaut:
\version "2.16.2"
\header {
mytitle =" Wie der Titel heist soll hier eigentlich keine rolle spielen, er ist nur so lang, das er in mehere Zeilen muss"
title = \markup {\column {\fill-line {\override #'(line-width . 80) \text-center { \justify-field #'header:mytitle }}}}
}
verursacht \text-center eine Fehlermeldung.
nämlich? und wo bleibt der code, um diesen fehler zu reproduzieren?
Eluze
-
ey, ist der aber gut gelaunt ;):
zum einen:
\version "2.16.2"
\header {
mytitle =" Wie der Titel heist soll hier eigentlich keine rolle spielen, er ist nur so lang, das er in mehere Zeilen muss"
title = \markup {\column {\fill-line {\override #'(line-width . 80) \textCenter { \justify-field #'header:mytitle }}}}
}
\relative c' {
c d e f
}
zum anderen:
...
/guido/appdata/local/temp/frescobaldi-ezt_h2/tmponzxvo/Titel in mehreren Zeilen.ly:5:68: Fehler: Ungültige Fluchtsequenz: »\textcenter«
title = \markup {\column {\fill-line {\override #'(line-width . 80)
\textcenter { \justify-field #'header:mytitle }}}}
Interpretation der Musik...
-
steht doch deutsch + deutlich:
Fehler: Ungültige Fluchtsequenz: »\textcenter«
:D
-
Und was sagt mir einfach gesticktem Menschen das?
Was zum Beispiel ist eine "Ungültige Fluchtsequenz"
Und wie bitte schön bekomme ich jetzt meinen Titel zentriert
:'(
Ich weiss das hier wohl der Fehler in \textcenter liegt, aber lasse ich den Ausdruck weg, setzt er den Text 2-Zeilig aber nicht zentriert , schreib ich Ihn rein kommt eine Fehlermeldung und textcenter überschrieben, Text och nicht zentriert, setz ich den Text in >> << zerreist es mir die Seite .
Gruß
Guido
-
Und was sagt mir einfach gesticktem Menschen das?
Was zum Beispiel ist eine "Ungültige Fluchtsequenz"
na ja - eine fehlübersetzung die sich durchgesetzt hat…
sie bedeutet: der strring der da folgt wird nicht erkannt.
Und wie bitte schön bekomme ich jetzt meinen Titel zentriert
:'(
Ich weiss das hier wohl der Fehler in \textcenter liegt, aber lasse ich den Ausdruck weg, setzt er den Text 2-Zeilig aber nicht zentriert , schreib ich Ihn rein kommt eine Fehlermeldung und textcenter überschrieben, Text och nicht zentriert, setz ich den Text in >> << zerreist es mir die Seite .
schreib textCenter so wie es in der definition steht!
und nun akzeptiert diese funktion nur text oder ein markup, dh. eine scheme funktion wird nicht akzeptiert.
der code könnte dann lauten:
\version "2.17.95"
#(define (general-column align-dir baseline mols)
(let* ((aligned-mols (map (lambda (x) (ly:stencil-aligned-to x X align-dir)) mols)))
(stack-lines -1 0.0 baseline aligned-mols)))
#(define-markup-command (textCenter layout props args)(markup-list?)
#:properties ((baseline-skip))
(general-column CENTER baseline-skip (wordwrap-internal-markup-list layout props #f args)))
myText = \markup \textCenter {
Wie der Titel heist soll hier eigentlich keine rolle spielen, er ist nur so lang, das er in mehere Zeilen muss
}
\header {
title = \markup \override #'(line-width . 45)
\column {
\fill-line { \textCenter { \myText } } } }
\relative c' {
c d e f
}
oder du schreibst statt \myText den text direkt im \header.
hdh ;)
Eluze
-
:D
Klasse geht!
Ich weis zwar nicht warum, der Code sagt mir nichts, muss er einem einfachen User mit wenig Zeit sicherlich auch nicht.
Ich binde die Headerdatei mit \include in mein Songbook ein. Den Titel habe ich direkt in die Titelumgebung geschrieben, anstelle von "mytitle".
Dabei ist anzumerken das der Codebreich
#(define (general-column align-dir baseline mols)
(let* ((aligned-mols (map (lambda (x) (ly:stencil-aligned-to x X align-dir)) mols)))
(stack-lines -1 0.0 baseline aligned-mols)))
#(define-markup-command (textCenter layout props args)(markup-list?)
#:properties ((baseline-skip))
(general-column CENTER baseline-skip (wordwrap-internal-markup-list layout props #f args)))
nicht in einer \score - Umgebung funktioniert. Wenn ich also mehrere Stücke Stücke auf einer Seite setzen will und mit print-all-headers = ##t arbeite,
setze ich den Codeabschnitt in die \book oder noch besser in die globale umgebung. Dann klappt es bei mir auch mit mehreren Stücken auf einer Seite.
Danke noch mal
Gruß
Guido
-
:D
Klasse geht!
;)
Dabei ist anzumerken das der Codebreich
#(define (general-column align-dir baseline mols)
...
das ist so! diese definitionen gehören in den top level bereich und ich würde sie ebenfalls bei jedem stück includieren, resp. lilypond.exe mit -dinclude-settings und/oder --linclude ausführen! - leider kann das frescobaldi noch nicht, resp. dieser parameter muss jedes mal wieder eingegeben werden.
... Wenn ich also mehrere Stücke Stücke auf einer Seite setzen will und mit print-all-headers = ##t arbeite,
ist mir nicht klar, warum das print-all-headers = ##t nötig sein soll - aber ohne den gesamten (minimalen) code kann ich das nicht beurteilen.
weiterhin viel spass mit LilyPond ;)
-
Zitat
... Wenn ich also mehrere Stücke Stücke auf einer Seite setzen will und mit print-all-headers = ##t arbeite,
ist mir nicht klar, warum das print-all-headers = ##t nötig sein soll - aber ohne den gesamten (minimalen) code kann ich das nicht beurteilen.
Kommt von hier:
https://liarchiv.joonet.de/index.php?topic=1370.msg7537#msg7537 (https://liarchiv.joonet.de/index.php?topic=1370.msg7537#msg7537)
Gruß und nochmal Danke!
Guido
-
Zitat
... Wenn ich also mehrere Stücke Stücke auf einer Seite setzen will und mit print-all-headers = ##t arbeite,
ist mir nicht klar, warum das print-all-headers = ##t nötig sein soll - aber ohne den gesamten (minimalen) code kann ich das nicht beurteilen.
Kommt von hier:
... dann kriegst du den zentrierten titel bei jedem stück dazu, oder?
aber mach wie es dir gefällt :-X
Eluze
-
Nein, denn ich wähle folgenden Aufbau:
\version "2.16.2"
\include"notenA.ly"
\include"notenB.ly"
\include"notenC.ly"
\paper {
print-all-headers = ##t
}
\layout {
\context {
% Leere Zeilen weglassen
\RemoveEmptyStaffContext
% Auch am Anfang:
override VerticalAxisGroup #'remove-first = ##t
}
}
\book
#(define (general-column align-dir baseline mols)
(let* ((aligned-mols (map (lambda (x) (ly:stencil-aligned-to x X align-dir)) mols)))
(stack-lines -1 0.0 baseline aligned-mols)))
#(define-markup-command (textCenter layout props args)(markup-list?)
#:properties ((baseline-skip))
(general-column CENTER baseline-skip (wordwrap-internal-markup-list layout props #f args)))
\bookpart {
\score {
\include"notensatzA.ly"
\include"headercenter.ly"
}
\score {
\include"notensatzB.ly"
\header {
poet = "Satz 1"
copyright ="himself"
}
}
\score {
\include"notensatzC.ly"
\header {
poet = "Satz 2"
}
}
}
}
}
Funktioniert eigentlich so wie ich es haben will:
Titel des Werkes mittig zentriert über 2 Zeilen
Satzbezeichnung linksbündig angeordnet vor jedem Satz
Durch probieren habe ich herausgefunden das, da der \header nach den Noten aufgeführt wird, der eigentlich hinzugeladene header überschrieben wird. Andersrum geht nicht - gibt gezicke vom Programm
Was soll es: Der Zweck heiligt die Mittel, für mich ist wichtig was hinten als pdf rauskommt.
Gruß
Guido