War:
Spacing zwischen Buchstaben in TextMarkupWenn Du was für mich tun wilst, dann schau mal, wie man das »neue Segno« (\bar "S" und Co.) zur Kooperation mit \repeat volta bringt. Die Lösung könnte ein 'apply context' für »Segno bitte hier« sein, welches dann im gleichen Engraver ausgewertet wird, welcher letztlich die Wiederholungszeichen für \repeat & \alternative setzt. Der hat erst kürzlich zwei weitere Variablen bekommen, (jetzt drei gesamt) mit denen der Anwender seine Wiederholungszeichenwünsche angeben kann - mit dieser angedachten Erweiterung wären's halt dann sieben (für die mit-Segno-Zeichen-Varianten und das Segno-Zeichen ohne Wiederholungszeichen zusätzlich).
Hintergrund:
Gemeisam mit Marc Hohl beschäftige ich mich seit einiger Zeit damit nicht nur
issue 1320 anzugehen sondern die barlines komplett neu in scheme zu definieren.
Der Code wurde erstmalig
hier auf der devel-list vorgestellt. [1]
(Leider haben sich die anderen Entwickler auf ein absolut nebensächliches Thema gestürzt, so daß substantielle Kritik leider ausblieb)
Im Moment versucht Marc erstmal die C++->scheme-Portierung ohne jegliches zusätzliches feature durchzubringen.
http://codereview.appspot.com/6305115/Die neuen context-properties: endRepeatType = "..." und startRepeatType = "..." entstammen dieser Arbeit und bereiten das neue user-interface vor (das dann hoffentlich irgendwann funktionieren wird). ->
http://codereview.appspot.com/6210049Wir haben allerdings schon bemerkt, daß es ein Problem mit der volta-bracket gibt: Wenn man vom default-glyph für das Wiederholungszeichen abweicht, wird die Klammer nicht mehr geschlossen.
Arnold, ist das das Problem welches Du meinst? (->png)
\version "2.15.39"
\paper {
indent = 30
}
\layout {
\context {
\Score
startRepeatType = "S|:"
endRepeatType = ":|S"
doubleRepeatType = ":|S|:"
}
}
\new Staff \with { instrumentName = \markup \center-column { "\\repeat" "and" "\\alternative" } }
\relative c' {
\repeat volta 2 {
c1
}
\repeat volta 2 {
d
e
}
\alternative {
{ f }
{fis }
}
g
}
voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
\new Staff \with { instrumentName = \markup \center-column { "manual" "repeatCommands " } }
\relative c'' {
a
\set Score.repeatCommands = #'(end-repeat)
b
\set Score.repeatCommands = #'(start-repeat)
c
\set Score.repeatCommands = #'((volta "2, 5") end-repeat)
b
\set Score.repeatCommands = #'((volta #f))
a
c1
\set Score.repeatCommands = #(list(list 'volta voltaAdLib) 'start-repeat)
c4 b d e
\set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat)
f1
\set Score.repeatCommands = #'((volta #f))
g
}Die Ursache liegt wohl in
volta-bracket.ccIn Zeile 142 ff sind die glyphen aufgeführt, bei denen die erste volta-bracket geschlossen wird. (Denke ich zumindest. Mit C++ kenne ich mich nicht aus)
"S"-glyphen kommen dort nicht vor.
Lösungsmöglichkeiten:
(1) Einen Patch vorbereiten, der die "S"-Balines in volta-bracket.cc einfügt.
(2) Die entsprechende Definition nach scheme portieren.
(3) Einen BarLine-stencil-override kreieren, der das Segno-Zeichen via ly:stencil-add (o.ä.) hinzufügt.
ad (1)
Das kann ich nicht selber machen, da ich git nicht auf dem Rechner habe.
ad (2)
Hier fehlen mir die Kenntnisse in C++ um beurteilen zu können, was
genau zu tun ist.
ad (3)
Das sollte möglich sein. Ich schau mal, ob es klappt.
Grüße,
Harm
[1] Wer den Code dort ausprobieren will tut das auf eigenes Risiko. Es handelt sich um experimentelle Arbeit. Schließlich gibt es einen Grund warum die devel-list existiert.